Excel的文檔,本身就是一個壓縮包,使用壓縮工具打開一個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資料
}
}