嗨,專家正在嘗試解析excel文件。其結構非常複雜。我知道的可能方法是。Excel文件解析/使用.NET抓取
- 使用Office introp庫
- 使用OLEDB提供商和讀取Excel文件中的數據集。
但問題是它的複雜性,像一些列單元格或行空白等
什麼是最好的方法可以做到這一點?
在此先感謝。
嗨,專家正在嘗試解析excel文件。其結構非常複雜。我知道的可能方法是。Excel文件解析/使用.NET抓取
但問題是它的複雜性,像一些列單元格或行空白等
什麼是最好的方法可以做到這一點?
在此先感謝。
我可以推薦ExcelDataReader(根據LGPL許可,我認爲)。它加載.xls和.xlsx文件,並讓您將電子表格作爲DataSet獲取,每個工作表都是單獨的DataTable。據我所知,從我使用過的場景中可以知道,它會授予空白行,空單元格等。試試看看您是否認爲它會處理您的「非常複雜」的結構。 [我確實在網站上發現了一個負面評論 - 但其餘的都很積極。如果工作表被重命名,我遇到了讀取.xlsx的問題]
我也在過去使用過OLEDB方法,但要警告的是,它在試圖推斷第一種數據類型時會遇到實際問題幾行。如果某個列的數據類型發生變化,那麼這可能會錯誤地推斷出來。更糟糕的是,當它發生錯誤時,它通常會返回null作爲值,從而難以(或不可能)通過在前六(7)行之後更改的數據類型來指示真空值。
我讓我的用戶首先將Excel電子表格保存爲CSV文件。然後他們將CSV文件上傳到我的應用程序。這使得解析起來更簡單。
就我個人而言,我更喜歡使用OLEDB方式,有時候這種方式有時笨重得多,或者您可以使用第三方庫,它已經投入時間/精力/精力來訪問數據。
SyncFusion有一個相當漂亮的庫。
我已經使用OLEDB自己來讀取上傳的Excel文件,並且它沒有提出真正的問題(除了空值,而不是空白,可以用IsDBNull檢查)。另外,像NPOI和Excel2007ReadWrite(http://www.codeproject.com/KB/office/OpenXML.aspx)這樣的第三方開源工具也很有用。
我已經對這些第三方工具進行了全面評估,並且都非常穩定且易於集成。我會推薦用於Excel 2003文件的NPOI和用於Excel 2007文件的Excel2007ReadWrite。
聽起來好像你對手頭的任務有很好的理解。您必須編寫業務邏輯來解決電子表格格式的複雜性並提取您要查找的數據。
在我看來,那VTSO /互操作是有兩個原因的最佳平臺戰略: