zoukankan      html  css  js  c++  java
  • 比NPOI更好用的Excel操作库——EPPlus

    提到通过纯.Net读写Excel,一般首先想到的自然是大名鼎鼎的NPOI,就连微软官方的MSDN都有专门的一篇文章来介绍它的用法。今天在一个项目中使用到了导出报表为Excel的功能,便特地的试用了一下,感觉虽然它的功能够强大,但谈不上好用。可能是由于其起源与Java的POI的缘故,大部分的API还透浓浓着Java的味道。 例如,要在一个单元格中写入数据时,必须先CreateRow(),再CreateCell()才能写入,不能使用类似Cells[rowIndex, colIndex]=value之类的语句一步到位。

    于是,便在网上继续搜了一下,在文章《讀取 Excel 你還在用 NPOI 嗎?快來試試 LinqToExcel》中找到了另一个库:LinqToExcel。这个库可以通过一个LINQ查询快速而友好的读取Excel。不过,它貌似仅限于简单的映射关系,并且不能写入,大部分情况下不能满足复杂一点的业务需求。

    最后,我找到了一个非常强大的库——EPPlus,感觉上基本上该有的功能都有了,并且有比较友好的API。如下是一个简单的例子:

        using (var p = new ExcelPackage())
        {
            var sheet = p.Workbook.Worksheets.Add("My Sheet");

            //Cells
    的起始索引是1
            sheet.Cells[1, 1].Value = 0;
            sheet.Cells[2, 1].Value = 1;
            sheet.Cells[3, 1].Value = 2;
            sheet.Cells[4, 1].Value = 3;

            p.SaveAs(new FileInfo(@"r:output.xlsx"));
        }

    感觉上比NPOI友好多了。 效果如下:

        

    这个例子比较简单,更复杂一点的例子可以参考这个文章:http://zeeshanumardotnet.blogspot.com/2010/08/creating-advanced-excel-2007-reports-on.html(需要翻墙)。或者它的官方帮助文档:http://epplus.codeplex.com/wikipage?title=FAQ&referringTitle=Documentation

    最后,提一下这个库的一点不足——它只支持XLSX格式,不支持Office2003的Excel格式,不过到现在这个也不是什么问题了。

  • 相关阅读:
    angular.js 渲染
    HTML5 与 CSS3 jQuery部分知识总结
    下拉滚动协议文本框展示样式(不可删除文本内容)
    06对象
    05数组
    1文字与字体
    04函数
    03循环
    02运算符
    01基础
  • 原文地址:https://www.cnblogs.com/TianFang/p/3965112.html
Copyright © 2011-2022 走看看