其实无非2种
1.引用office.excel.dll
2.第三方dll
方法1问题太多,比如部署麻烦,要配置DCOM,设置权限,设置应用程序池位数,而且可能产生excel死进程,服务器上要安装office,而且与dll版本必须一致.....
一般都是采用方法2,第三方dll有许多种,NPOI只是其中一种

解决方案 »

  1.   

    第三方dll一般用什么比较方便?
      

  2.   

    反正我只用过NPOI,有一种好用的就行了,没去研究所有的dll到底都有什么差别
      

  3.   

    我推荐OpenXML。优点是不需要安装office。我不推荐使用第三方的dll,因为出了问题很难解决。我以前在一个项目里用到了 NPOI,遇到了内存泄露问题,但是没有办法解决
      

  4.   

    推荐aspose操作最方便功能比较全不过有bug.com组件依赖office进程功能最强大.npoi大家用的比较多不过也有bug.openxml操作复杂。epplus,spire.xls这些用的比较少的就不说了你可以测试一下。
      

  5.   

    只读取的话最简单的应该是第一种吧:使用OLE DB,我现在用的就是
      

  6.   


    我现在用的是这个,挺好用,速度也不慢,也没有兼容问题(32,、64位;office版本问题等等)
    api中文也挺多,习惯上跟直接调用微软excel.dll类似
    给你个例子/// <summary>
            /// 读取excel原表不改变格式
            /// </summary>
            /// <param name="fullFilename"></param>
            /// <returns></returns>
            public static DataTable ExcelToDatatalbe(string fullFilename)
            {
                Workbook book = new Workbook();
                book.Open(fullFilename);
               //第一个工作薄
                Worksheet sheet = book.Worksheets[0];
                Cells cells = sheet.Cells;
                //获取excel中的数据保存到一个datatable中
                //前四个参数,开始行,开始列,结束行,结束列,第五个参数,是否使用第一行作为列名
                DataTable dt_Import = cells.ExportDataTableAsString(0, 0, cells.MaxDataRow + 1, cells.MaxDataColumn + 1, false);
                // dt_Import.
                return dt_Import;
            }