在很久之前我应该是写过一次关于Excel的导入导出的文章的,那时候是直接使用OFFICE的组件,后来遇到进程的问题,改为使用第三方Aspose.Cells,但这是一个收费的组件,最近在开源中国中看到开源项目NPOI,所以今天把Aspose.Cells替换掉,改成NPOI。
NPOI目前应该说没有Aspose.Cells强大的,比如说现在日渐盛行的OFFICE 2007,NPOI还不支持,有些操作也不如Aspose.Cells来的方便。但是我曾经把两者比较过,打开Excel文件的话,Aspose.Cells会快大概1-3秒左右,导出的话NPOI反而比Aspose.Cells快上05-2秒左右(导出的过程逻辑是一样的,我只是把用到Aspose.Cells的地方都换成NPOI的操作),当然这里的比较仅仅是提供参考。
Aspose.Cells,我感觉其实就是封装了好些常用的操作,比如说打开文件并导入一个DataTable里,在Aspose.Cells是已经封装好的方法,而在NPOI是需要自己做的。两者应该是各有各的优势的,但是毕竟Aspose.Cells是收费的,估计愿意出钱的不多,而且要用全部功能的也不多,而NPOI免费而且开源,况且我仅仅是做一些简单的导入导出而已。
因为是类库,没什么图片上,上代码:
以上是打开一个Excel文件。
以上是导出到Excel,里面用了自己定义的一个类,用来放一些导出的一些设置和数据。里面用DataSet来放相关设置和数据,主要考虑到一次多出多个文件。
因为NPOI目前还不支持office2007,所以有必要做一下文件的判断,其实NPOI的源码里也有这个判断的,但是自己先判断一下,不符合的直接不打开。
项目源码:http://download.csdn.net/source/2912158