NPOI在ASP.NET上传下载Excel文件的应用
2014-02-11 16:04
148 查看
做统计相关软件已经有20来年了,感觉Excel制作复杂报表是非常合适的,以前一直应用COM方法调用机器的Excel制作报表,包括字体、对齐、单元格合并、设置行列宽度等,使用起来得心应手。
随着新版本Office的发布、新操作系统的普及,以及服务器上Excel使用时常报些异常(需要重运行下Excel即可解决),间或是用户的COM相关系统文件被病毒破坏,以及要求机器上安装Excel,等等。感到Excel制作报表技术维护起来比较困难。于是,在2013年年底开始使用免费的NPOI制作报表。经过一段时间的使用,发现在ASP.NET系统中使用NPOI有如下两个显著优点:
[b]上传Excel文件:[/b]上传Excel文件,并从文件中导入数据。使用COM技术时一般需要先在服务器上保存一个临时文件,再打开文件读数据,因为COM方式仅提供了一个通过文件创建对象的构造函数。而NPOI可以直接通过FileUpload组件的FileContent文件流属性直接创建WorkBook对象,然后就可以处理Excel了。这样省掉了保存与清除临时文件等操作。
下载Excel文件:使用COM方式创建的Excel对象,不能以Stream形式输出Excel,只能保存为一个临时文件,然后通过Response的WriteFile读文件。而NPOI的WorkBook可以Save到流对象中,这样直接Save到ASP.NET的Respose.OutputStream属性即可供下载。同样省掉了保存与清除临时文件等操作。
与COM技术相比,NPOI也有不足,例如:不支持带口令的Excel文件读写,CellStyle对象限制4000个(估计新版本将解决该文件),格式化设置不够灵活,不能直接Print,等等。但上述两个明显的应用优点,简化了ASP.NET编程,便于系统维护,可以满足一般的Excel制作报表需求。
随着新版本Office的发布、新操作系统的普及,以及服务器上Excel使用时常报些异常(需要重运行下Excel即可解决),间或是用户的COM相关系统文件被病毒破坏,以及要求机器上安装Excel,等等。感到Excel制作报表技术维护起来比较困难。于是,在2013年年底开始使用免费的NPOI制作报表。经过一段时间的使用,发现在ASP.NET系统中使用NPOI有如下两个显著优点:
[b]上传Excel文件:[/b]上传Excel文件,并从文件中导入数据。使用COM技术时一般需要先在服务器上保存一个临时文件,再打开文件读数据,因为COM方式仅提供了一个通过文件创建对象的构造函数。而NPOI可以直接通过FileUpload组件的FileContent文件流属性直接创建WorkBook对象,然后就可以处理Excel了。这样省掉了保存与清除临时文件等操作。
下载Excel文件:使用COM方式创建的Excel对象,不能以Stream形式输出Excel,只能保存为一个临时文件,然后通过Response的WriteFile读文件。而NPOI的WorkBook可以Save到流对象中,这样直接Save到ASP.NET的Respose.OutputStream属性即可供下载。同样省掉了保存与清除临时文件等操作。
与COM技术相比,NPOI也有不足,例如:不支持带口令的Excel文件读写,CellStyle对象限制4000个(估计新版本将解决该文件),格式化设置不够灵活,不能直接Print,等等。但上述两个明显的应用优点,简化了ASP.NET编程,便于系统维护,可以满足一般的Excel制作报表需求。
相关文章推荐
- ASP.NET文件上传控件——WebbUpload我下载了这个组件后做了一些修改并应用了ajax技术
- ASP.NET MVC实现Excel文件的上传下载以及Excel数据的保存
- ASP.NET中的文件上传下载方法集合
- ASP.NET MVC 使用jquery.form.js 异步上传 在IE下返回值被变为下载的解决办法
- ASP.NET Core文件上传与下载实例(多种上传方式)
- ASP.NET中文件上传下载方法集合
- 使用Asp.net MVC, Jquery, Jquery UI构建基于Ajax的RIA应用.(更新Demo下载)
- asp.net+swfupload 多图片批量上传(附源码下载)
- ASP.NET文件上传于下载
- ASP.NET中上传下载文件
- [转载]ASP.NET中常用的文件上传下载方法
- ASP.NET 中常用的文件上传下载方法
- 基于asp.net + easyui框架,js实现上传图片之前判断图片格式,同时实现预览,兼容各种浏览器+下载
- Asp.net生成Excel文件并下载(更新:解决使用迅雷下载页面而不是文件的问题)
- iOS开发之结合asp.net webservice实现文件上传下载
- ASP.NET中文件上传下载方法总结
- 基于asp.net + easyui框架,js实现上传图片之前判断图片格式,同时实现预览,兼容各种浏览器+下载
- Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件(示例代码下载)
- asp.net实现网站上传下载功能的几种方法