C#儀器數(shù)據(jù)文件解析Excel文件的方法淺析(xls、xlsx)
前言
大家都知道,不少儀器工作站可xls文件和2007+的xl以將數(shù)據(jù)導(dǎo)出為Excel文件,包括97-2003版本的sx文件。
采集Excel文件相比采集pdf文件更容易、程序更健壯,畢竟Excel中數(shù)據(jù)有明確的行、列的定義,利于數(shù)據(jù)解析。
Excel早期的xls文件和后來的xlsx文件的格式不一樣,xls是二進制特定格式文件,xlsx是zip壓縮包,其中數(shù)據(jù)使用xml定義。雖然兩種文件格式定義不同,但解析文件數(shù)據(jù)可以通過中間件,因此只要理解了Excel文件的工作簿、sheet頁、行、列、單元格等概念即可,無需了解其文件的詳細定義方式。
常用的采集Excel文件數(shù)據(jù)的方式有:
1.通過OLE DB的方式,將Excel文件作為數(shù)據(jù)庫進行查詢來獲取數(shù)據(jù);
2.使用MS Excel應(yīng)用程序來讀取Excel文件數(shù)據(jù);
3.使用WPS應(yīng)用程序來讀??;
4.使用其他Office軟件來讀取;
5.使用MS Open XML來讀??;
6.使用NPOI組件讀?。?/p>
7.……
方式有很多,但各有優(yōu)劣,比如MS Excel應(yīng)用程序有版權(quán)的問題,WPS等應(yīng)用程序即使免費也需要安裝,另外通過DCOM調(diào)用應(yīng)用程序需要配置權(quán)限;
無需應(yīng)用程序的方式,可以通過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];
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
基于Kubernetes實現(xiàn)前后端應(yīng)用的金絲雀發(fā)布(兩種方案)
這篇文章主要介紹了基于Kubernetes實現(xiàn)前后端應(yīng)用的金絲雀發(fā)布,文中給大家提到了兩種常用方案,通過示例代碼給大家介紹的非常詳細,需要的朋友可以參考下2021-12-12
C# 關(guān)于爬取網(wǎng)站數(shù)據(jù)遇到csrf-token的分析與解決
這篇文章主要介紹了C# 關(guān)于爬取網(wǎng)站數(shù)據(jù)遇到csrf-token的分析與解決,幫助大家更好的理解和學(xué)習(xí)c#,感興趣的朋友可以了解下2021-01-01

