前言
大家都知道,不少儀器工作站可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組件讀取;
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頁、行、單元格值:
1
2
3
4
5
|
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)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)服務(wù)器之家的支持。
原文鏈接:http://www.cnblogs.com/mahongbiao/p/7672920.html