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