NPOI在ASP.NET上传下载Excel文件的应用

做统计相关软件已经有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的WorkBook可以Save到流对象中,这样直接Save到ASP.NET的Respose.OutputStream属性即可供下载。同样省掉了保存与清除临时文件等操作。

与COM技术相比,NPOI也有不足,例如:不支持带口令的Excel文件读写,CellStyle对象限制4000个(估计新版本将解决该文件),格式化设置不够灵活,不能直接Print,等等。但上述两个明显的应用优点,简化了ASP.NET编程,便于系统维护,可以满足一般的Excel制作报表需求。

   

你可能感兴趣的:(.NET实现与应用技术)