比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(需要FQ)。或者它的官方帮助文档:http://epplus.codeplex.com/wikipage?title=FAQ&referringTitle=Documentation
最后,提一下这个库的一点不足——它只支持XLSX格式,不支持Office2003的Excel格式,不过到现在这个也不是什么问题了。
最新文章
- JSTL的fn函数
- drag &; resize元素的jQuery实现
- linux查看磁盘系统df,du
- ACTIVITI 源码研究之命令模式执行
- 黄聪:C#图像处理(各种旋转、改变大小、柔化、锐化、雾化、底片、浮雕、黑白、滤镜效果) (转)
- 第35讲 Activity入门和跳转
- ZA7783:MIPI转LVDS/MIPI转RGB888/RGB转LVDS
- 一不小心把Mysql数据库的root的账号的权限给弄没啦,该怎么办
- map reduce程序示例
- Openwrt 刷机后配置WAN口,安装luci和设置中文、安装挂载USB存储。
- mongo 复制集命令
- jquery ajax 中各个事件执行顺序
- scripy
- C# 继承、虚方法、方法重载和多态
- 2018.12.12 codeforces 935D. Fafa and Ancient Alphabet(概率dp)
- C#中的装箱拆箱
- Linux下修改当前用户的最大线程数和 open files
- iOS LLDB调试精解
- BZOJ 1005: [HNOI2008]明明的烦恼(prufer数列)
- [K8S]kubeadm国内镜像安装方式