问题描述
百度一下,综合有5种方法1.使用OLEDB2.使用Office主互操作程序集3.使用ServerDocument4.使用OpenXMLSDK5.npoi是不是第5种最好、最简单?
解决方案
解决方案二:
其实无非2种1.引用office.excel.dll2.第三方dll方法1问题太多,比如部署麻烦,要配置DCOM,设置权限,设置应用程序池位数,而且可能产生excel死进程,服务器上要安装office,而且与dll版本必须一致.....一般都是采用方法2,第三方dll有许多种,NPOI只是其中一种
解决方案三:
第三方dll一般用什么比较方便?
解决方案四:
反正我只用过NPOI,有一种好用的就行了,没去研究所有的dll到底都有什么差别
解决方案五:
我推荐OpenXML。优点是不需要安装office。我不推荐使用第三方的dll,因为出了问题很难解决。我以前在一个项目里用到了NPOI,遇到了内存泄露问题,但是没有办法解决。。。
解决方案六:
推荐第三方控件:aspose
解决方案七:
推荐aspose操作最方便功能比较全不过有bug.com组件依赖office进程功能最强大.npoi大家用的比较多不过也有bug.openxml操作复杂。epplus,spire.xls这些用的比较少的就不说了你可以测试一下。
解决方案八:
只读取的话最简单的应该是第一种吧:使用OLEDB,我现在用的就是
解决方案九:
npoi吧,速度快
解决方案十:
我现在用的是这个,挺好用,速度也不慢,也没有兼容问题(32,、64位;office版本问题等等)api中文也挺多,习惯上跟直接调用微软excel.dll类似给你个例子///<summary>///读取excel原表不改变格式///</summary>///<paramname="fullFilename"></param>///<returns></returns>publicstaticDataTableExcelToDatatalbe(stringfullFilename){Workbookbook=newWorkbook();book.Open(fullFilename);//第一个工作薄Worksheetsheet=book.Worksheets[0];Cellscells=sheet.Cells;//获取excel中的数据保存到一个datatable中//前四个参数,开始行,开始列,结束行,结束列,第五个参数,是否使用第一行作为列名DataTabledt_Import=cells.ExportDataTableAsString(0,0,cells.MaxDataRow+1,cells.MaxDataColumn+1,false);//dt_Import.returndt_Import;}