最近刚刚完成一个网站,asp.net其中中间遇到以下问题总结:
导出Excel时 Excel.visibel=true(显示Excel)
如果做的是C/S程序,自己的电脑作为服务器所以可以显示出Excel
如果做的是B/S程序,发布后,只能像服务器段请求数据,没有缓冲机制,在服务器端 Excel.visible=true 这句代码无效
因此总结方案
1.把请求的资源保存在自己项目的文件夹中,然后做个超链接让客户下载(时间过长,会增加服务器端的负担)
用此方案了设置权限 ASP.NET -本机权限要突出
具体解决方案---
2.直接用输出流的形式可以直接让客户下载到本机,保存在本机效率高
具体方案参考(about/连接http://social.msdn.microsoft.com/Forums/id-ID/295/thread/33222072-b30f-4ad7-8428-757b5f7fb961
http://anti-pure.iteye.com/blog/203503)
3.一定考虑Excel版本兼容性
4.注意Session过期处理
session对象为空时,在写程序时最好写个基类然后其他的类来继承这个基类,来处理Session过期处理
发布后的总结:
尽管程序已经发布了,已经用了但是又发现一个隐藏的细节问题,就是导出Excel时候,比如说以0开头的012当导出的时候0写不上,因为Excel在写入的时候默认为常规把012自动转化为数字,只有将Excel改为文本的新式才可以将0写上,可以将改字段价格“‘”将Excel改为文本的形式,但是自己没有找到合理的方法
最后的总结:
导入和导出Excel是很常见的基本上现在很多软件系统都用到这,所以自己要熟悉这些操作和方法,当然,像打印也是很基本的,以后有待学习的是怎样将记事本作为流的形式读取来设置为一个固定的页面,具体的我说不清专业的这改叫什么方法,自己明白,所以要抽空学习,靠自己学习可能很多要靠自己摸索!