天天看点

C#使用 OpenXML SDK读取Excel文档

       Excel的文档,本身就是一个压缩包,使用压缩工具打开一个excel文件,可以看到里边的文件列表如下图:

C#使用 OpenXML SDK读取Excel文档
C#使用 OpenXML SDK读取Excel文档

       里边的文件主要就是一些xml文件和其他的素材

       OpenXML是微软官方一个开源的操作Word、Excel和PPT的SDK,用C#进行开发,使用此类库可以方便的对office这三类主要文档进行操作,而且还不用安装Office程序。

       下边列举一下,如何使用OpenXML读取一个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数据
    }
}