2010-11-03 119 views
4

什么我的应用需求是这是在Java中读取大型excel文件的最佳API吗?

1)阅读以.xls或.xlsx格式

2大型Excel文件),数据库与前一列插入每列作为行作为下一

意思是如果我有5列和30,000行,那么我想插入1列作为父母,
第二列是第一列的孩子,第三列是第二等孩子......树结构

现在任何人都可以建议我最好的API来做到这一点在Java语言。

一些谷歌搜索后,我发现有很多API的现在,但是这是最好的是

参考see

+0

我有**完全相同的问题。到目前为止,没有解决方案。 POI希望将整个XLSX加载到内存中。如果您只是使用XLS文件,POT-3.8b5将会在几秒钟内加载和处理文件!我有一个209MB的XLS文件,我的应用程序处理了整个事情(8个标签中有500,000行),并在大约2分钟内插入到MySQL中。 – Piko 2012-02-10 20:03:01

回答

4

尝试POI的,我不知道,如果他们读的.xlsx,也许他们在做最新版本。

+1

是的,我发现新版本的POI支持.xlsx(POI 3.6) – Romani 2010-11-03 11:13:26

-1

尝试POI - 它将读取文件(XLS,XLSX),但数据库操作也需要其他库和基本JDBC。

+0

虽然POI可以读取XLS和XLSX文件,但在后一种情况下它是一个内存管理器。 SXSSFWorkBook将**整个** XSLX文件加载到内存中。一个38MB的XLSX文件需要远远超过-Xmx2048x! [Redonculous](http://www.urbandictionary.com/define.php?term=redonculous)! – Piko 2012-02-10 19:59:31

5

过去我已经使用了POIJExcel,并坚持使用JExcel,因为它更易于使用,并具有更好的文档。我还发现POI在向电子表格写入数据时使用了更多的内存。

我会推荐JExcel,如果遇到任何问题,我很乐意提供帮助。

+0

JExcel的+1 ... – 2010-11-03 09:31:13

+0

我对POI更加熟悉,但是我听到了有关jExcel的优点,例如更好的文档和可伸缩性。 – 2010-11-03 09:38:48

+0

是JExcel支持.xlsx文件格式? – Romani 2010-11-03 10:19:26

0

而且你无法导出到.csv文件?

这可能是一个更快的解决方案,然后解析整个.xls/.xlsx文件。另一点是你比只需要处理一种文件类型/格式。

+0

我不认为JExcel正确处理.xlsx。不确定POI。我同意你的观点 - 导出.csv听起来更好。 – duffymo 2010-11-03 09:38:00

+0

如果重点是某些自动化,那么一些非技术业务人员只是想在类似的Web界面的上传框中转储一个excel文件,就不那么方便了。导出为CSV是一个手动步骤,或者需要一些VBA的东西 - 如果运行它的系统不是Windows系统,也不可用。 – 2010-11-03 09:44:58

相关问题