做统计相关软件已经有20来年了,感觉Excel制作复杂报表是非常合适的,以前一直应用COM方法调用机器的Excel制作报表,包括字体、对齐、单元格合并、设置行列宽度等,使用起来得心应手。
随着新版本Office的发布、新操作系统的普及,以及服务器上Excel使用时常报些异常(需要重运行下Excel即可解决),间或是用户的COM相关系统文件被病毒破坏,以及要求机器上安装Excel,等等。感到Excel制作报表技术维护起来比较困难。于是,在2013年年底开始使用免费的NPOI制作报表。经过一段时间的使用,发现在ASP.NET系统中使用NPOI有如下两个显著优点:
- 上传Excel文件:上传Excel文件,并从文件中导入数据。使用COM技术时一般需要先在服务器上保存一个临时文件,再打开文件读数据,因为COM方式仅提供了一个通过文件创建对象的构造函数。而NPOI可以直接通过FileUpload组件的FileContent文件流属性直接创建WorkBook对象,然后就可以处理Excel了。这样省掉了保存与清除临时文件等操作。
- 下载Excel文件:使用COM方式创建的Excel对象,不能以Stream形式输出Excel,只能保存为一个临时文件,然后通过Response的WriteFile读文件。而NPOI的WorkBo