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是二進(jìn)制特定格式文件,xlsx是zip壓縮包,其中數(shù)據(jù)使用xml定義。雖然兩種文件格式定義不同,但解析文件數(shù)據(jù)可以通過中間件,因此只要理解了Excel文件的工作簿、sheet頁、行、列、單元格等概念即可,無需了解其文件的詳細(xì)定義方式。
常用的采集Excel文件數(shù)據(jù)的方式有:
1.通過OLE DB的方式,將Excel文件作為數(shù)據(jù)庫進(jìn)行查詢來獲取數(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)用程序即使免費(fèi)也需要安裝,另外通過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í)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
c# 使用Json.NET實(shí)現(xiàn)json序列化
這篇文章主要介紹了詳解C#中的JSON序列化方法,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-05-05基于Kubernetes實(shí)現(xiàn)前后端應(yīng)用的金絲雀發(fā)布(兩種方案)
這篇文章主要介紹了基于Kubernetes實(shí)現(xiàn)前后端應(yīng)用的金絲雀發(fā)布,文中給大家提到了兩種常用方案,通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-12-12C# 關(guān)于爬取網(wǎng)站數(shù)據(jù)遇到csrf-token的分析與解決
這篇文章主要介紹了C# 關(guān)于爬取網(wǎng)站數(shù)據(jù)遇到csrf-token的分析與解決,幫助大家更好的理解和學(xué)習(xí)c#,感興趣的朋友可以了解下2021-01-01利用WinForm實(shí)現(xiàn)上左右布局的方法詳解
現(xiàn)在90%的管理系統(tǒng)都是在用上左右這種布局方式,真可謂是經(jīng)典永流傳。本文將利用WinForm實(shí)現(xiàn)上左右布局這一布局效果,感興趣的可以學(xué)習(xí)一下2022-09-09WPF實(shí)現(xiàn)html中的table控件的示例代碼
相信很多做WPF開發(fā)的小伙伴都遇到過表格類的需求,雖然現(xiàn)有的Grid控件也能實(shí)現(xiàn),但是使用起來的體驗(yàn)感并不好,所以本文我們就來用WPF自己實(shí)現(xiàn)一個(gè)html中的table控件吧2024-03-03