天天看點

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資料
    }
}