欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

OpenXML:C#读取Excel文档

程序员文章站 2024-03-15 13:57:53
...

Excel的文档,本身就是一个压缩包,使用压缩工具打开一个excel文件,可以看到里边的文件列表如下图:
OpenXML:C#读取Excel文档
OpenXML:C#读取Excel文档
里边的文件主要就是一些xml文件和其他的素材
OpenXML是微软官方一个开源的操作Word、Excel和PPT的SDK,用C#进行开发,使用此类库可以方便的对office这三类主要文档进行操作,而且还不用安装Office程序。
下边列举一下,如何使用OpenXML读取一个Excel文档中的内容:
首先,使用nuget安装OpenXML的类库引用,也可以从网上直接下载类库进行引用;
OpenXML:C#读取Excel文档
添加命名空间

 using DocumentFormat.OpenXml.Packaging;
 using DocumentFormat.OpenXml.Spreadsheet;
// 使用代码打开一个Excel文档
using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open("文件路径", false))
{
WorkbookPart workbookPart = spreadsheetDocument.WorkbookPart;
//选择Excel的sheet页,和Excel中的实际顺序对应
WorksheetPart worksheetPart = workbookPart.WorksheetParts.ElementAt(1);
//sheet页中的内容
SheetData _Sheet1data = worksheetPart.Worksheet.Elements<SheetData>().First();
//有些Excel中的标题等中英文内容会放在SharedStringTable中
var _sharepart = workbookPart.SharedStringTablePart;
//循环Excel表中的行数据
 foreach (Row r in _Sheet1data.Elements<Row>())
 { 
 //行数据中的每个Cell中数据
foreach (Cell c in r.Elements<Cell>())
{
string text = c.CellValue.Text;
//判断是不是在SharedStringTable中
if (c.DataType != null)
{
var _xmlpart = _sharepart.SharedStringTable.ElementAt(Convert.ToInt32(c.CellValue.Text));
text = _xmlpart.FirstChild.InnerText;
} 
//最终获得text数据
}
}

OpenXML:C#读取Excel文档