ClosedXML读取Excel文件
来源:互联网 发布:张国荣最冷一天知乎 编辑:程序博客网 时间:2024/06/03 21:03
因项目需要,需要把Excel里面的数据整合处理一下,文件多,而且文件内容较大,所以希望实现自动化。问了下师兄,他介绍说ClosedXML比较好用。安装过程就不细说了,使用Visual Studio的NuGet一键安装即可。
ClosedXML就是一个类库,用于开发windows组件。它是在微软的类库OpenXML的基础上封装而成的,所以在实际项目中除了添加ClosedXML.dll引用,还需要添加DocumentFormat.OpenXML.dll的引用。当然,NuGet会检查依赖关系,帮你完成上面的添加引用步骤。ClosedXML的功能,引用官网的一句话介绍其功能:
ClosedXML makes it easier for developers to create Excel 2007/2010 files. It provides a nice object oriented way to manipulate the files (similar to VBA) without dealing with the hassles of XML Documents. It can be used by any .NET language like C# and Visual Basic (VB).
废话不多说,讲讲具体怎么用。
获取页(Sheet)
首先简单介绍两个类XLWorkbook和IXLWorksheet,分别对应着OpenXML里面的Workbook和Worksheet。XLWorkbook对应着你要访问的Excel文件,一个XLWorkbook会有一个IXLWorksheet集——IXLWorksheets,IXLWorksheet和Excel文件里面的Sheet是对应的。我们知道,一个Excel中可能会包含着很多个Sheet,XLWorkbook类中可以通过两种方式获取想要访问的页:
- public IXLWorksheet Worksheet(int position);
- public IXLWorksheet Worksheet(string name);
第一种方式通过页的位置,也就是顺序来获取Sheet,一般第一页对应的参数为1;后一种通过页名来获取,具体使用哪一种当然要视情况而定。例如,需要遍历Excel文件中的所有内容时,第一种明显更好;如果是定位到某一页,第二种可能更恰当。单元格集合是在Sheet中的,所以要想访问数据,获取页是第一步。
读取数据范围
当你用对象浏览器查看上文中IXLWorksheet类时,似乎觉得RowCount()和ColumnCount()这两个方法是来获取最大行数和列数的,但经过测试发现,这两个值往往都很大,包含了你没有存放数据的范围。后来查了一下类成员,发现了FirstRowUsed()这个函数,函数说明为“Gets the first row of the worksheet that contains a cell with a value”,紧接着就果然又发现了LastRowUsed()这个函数。简单测试了下,二者确实表示了包围所有数据的最大矩形的位置,所以包含数据的表范围是:
- rowUsedCount = LastRowUsed().RowNumber() - FirstRowUsed().RowNumber()
- ColumnUsedCount = LastColumnUsed().ColumnNumber() - FirstColumnUsed().ColumnNumber()
读取单元格数据
读取单元格数据有三种方式:
- IXLCell Cell(string cellAddressInRange);
- IXLCell Cell(int row, int column);
- IXLCell Cell(int row, string column);
第一种是通过单元格符号来读取,比如“A1”、“B1”之类的;第二种通过行列的位置来读取如第三行第一列为Cell(3, 1);第三种就是二者的综合,因为在Excel里面,行是用数字表示的,而列则是用ABCD来表示的。第二种更合适一些,更符合“表”的概念。
0 0
- ClosedXML读取Excel文件
- ClosedXML 读写Excel文件
- .NET开源项目介绍 - ClosedXML - 生成Excel文件
- 使用ClosedXML导出Excel
- .net导出excel 向客户端推送文件 下载文件 ClosedXML导出Excel NPOI导出Excel
- 使用ClosedXML进行Excel输出
- 读取Excel文件
- 读取Excel文件
- 读取excel文件
- 读取Excel文件
- 读取excel文件
- java读取excel文件
- java读取excel 文件
- 读取excel文件 C#
- sql读取excel文件
- 读取EXCEL文件[转]
- 读取Excel文件内容
- c#读取excel文件
- share sdk分享失败-QQAPI- QQApi.m:235 param error: preview image data is too big
- iOS系统中各种设置项的URL链接
- JMS简介安装ActiveMQ
- 使用google protobuf RPC实现echo service
- 如何将图片插入PCB板上
- ClosedXML读取Excel文件
- JAVA多线程编程实现龟兔赛跑
- mysql创建定时器(event),查看定时器,打开定时器,设置定时器时间
- SSH框架总结
- javaSE(10)(Map集合)
- Java加密技术(一)——BASE64与单向加密算法MD5&SHA&MAC
- An Overview of Tomcat 6 Servlet Container : Part 1
- iptables的技术
- 函数的补充