2012-02-14 176 views
4

我需要閱讀使用Java的大型Excel表。 Excel工作表可能是.xls或.xlsx。該表可能有數千行。我必須讀取所有行並在數據庫中插入該行。什麼是使用Java讀取大型excel文件的最佳API?

於是基本從Excel中讀取並寫入數據庫。

我正在考慮的API是POI和JExcel API(在谷歌搜索和閱讀其他一些相關文章後)。

但我仍然不確定什麼是閱讀非常大的Excel工作表最合適的方式。

我不想在稍後出現任何內存問題。

編輯1:

而且,從我迄今搜查似乎JExcel不支持.xlsx格式

請建議。

+0

看一看這個:https://github.com/davidpelfree/sjxlsx – 2015-01-19 09:01:32

+0

注意,XSSF和HSSF包中的所有類一般都實現通用接口(例如WORKBOOK)等等。如果您不確定什麼性能最好,只要確保您的業務邏輯是針對通用API類編寫的,然後爲HSSF工作簿構造函數和XSSF構造函數提供兩個實現。 – 99Sono 2016-01-18 12:40:20

回答

3

我們正在使用Apache POI讀取那些大小的Excel文件,沒有任何問題。

+1

感謝您的評論。閱讀超過50,000行的行爲會不會有任何性能問題? – ashishjmeshram 2012-02-14 07:38:43

+0

看看[這裏](http://stackoverflow.com/questions/4897766/processing-large-xlsx-file-in-java) – jpstrube 2012-02-14 07:42:03

0

嘗試jExcel

參見常見問題解答here

由於性能和可用性,我更喜歡Apache POI

閱讀.xlsxjExcel庫的限制。

+0

感謝您的答案。我們將讀取.xlsx文件。所以JExcel似乎沒有問題,然後:( – ashishjmeshram 2012-02-14 07:46:26

3

如果您只想讀取這些文件,那麼Apache POI的性能應該不會有問題,因爲存在用於讀取的流式API(請考慮SAX與DOM)。
請參閱http://poi.apache.org/spreadsheet/index.html

使用POI編寫Excel文件將是一種不同的場景。但至少對於.xlsx文件,測試版中有一個擴展名,以允許使用Apache POI(SXSSF)進行更高效的寫入操作。

相關問題