1. 程式人生 > >C#儀器數據文件解析-Excel文件(xls、xlsx)

C#儀器數據文件解析-Excel文件(xls、xlsx)

sheet 解析 工作站 row 問題 .get 壓縮 安裝 shee

不少儀器工作站可以將數據導出為Excel文件,包括97-2003版本的xls文件和2007+的xlsx文件。

采集Excel文件相比采集pdf文件更容易、程序更健壯,畢竟Excel中數據有明確的行、列的定義,利於數據解析。

Excel早期的xls文件和後來的xlsx文件的格式不一樣,xls是二進制特定格式文件,xlsx是zip壓縮包,其中數據使用xml定義。雖然兩種文件格式定義不同,但解析文件數據可以通過中間件,因此只要理解了Excel文件的工作簿、sheet頁、行、列、單元格等概念即可,無需了解其文件的詳細定義方式。

常用的采集Excel文件數據的方式有:

1.通過OLE DB的方式,將Excel文件作為數據庫進行查詢來獲取數據;

2.使用MS Excel應用程序來讀取Excel文件數據;

3.使用WPS應用程序來讀取;

4.使用其他Office軟件來讀取;

5.使用MS Open XML來讀取;

6.使用NPOI組件讀取;

7.……

方式有很多,但各有優劣,比如MS Excel應用程序有版權的問題,WPS等應用程序即使免費也需要安裝,另外通過DCOM調用應用程序需要配置權限;

無需應用程序的方式,可以通過NPOI、MS Open XML等方式,使用XML讀取Excel的組件一般僅支持excel 2007+,畢竟該版本的Excel文件是xml的;

但NPOI比較逆天,可以讀取xls和xlsx文件,並且操作方式一致。

以下代碼為打開Excel文件,並讀取其sheet頁、行、單元格值:

FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read);
xssfWorkbook = new XSSFWorkbook(fileStream);
ISheet sheetAt = xssfWorkbook.GetSheetAt(num);
IRow row = sheetAt.GetRow(rownum);
ICell cell = row.Cells[index];

 

C#儀器數據文件解析-Excel文件(xls、xlsx)