内存高效的Java库来读取Excel文件?

是否有一个高效的Java库来读取大的Microsoft Excel文件(包括.xls和.xlsx)? 我对Apache POI的经验非常有限,从我记忆中来看似乎是一个巨大的记忆(尽pipe也许这只是为了写作而不是为了阅读)。 有什么更好的吗? 还是我误解和/或误用POI?

它也有一个“友好”的开源许可证是重要的。

Apache的POI库有一个基于事件的API ,具有较小的内存占用量。 不幸的是,它只适用于HSSF(可怕的电子表格格式),而不是XSSF(XML电子表格格式 – 用于OOXML文件)。

Excel文件格式(既)是巨大的,也是非常复杂的,任何读取它们所有可能的内容的东西都将是巨大而复杂的。 请记住,它们可以包含范围,macros,链接,embedded的东西等

但是,如果您正在阅读一些简单的数字格式,我build议先将电子表格转换为像CSV这样简单的格式,然后再读取该格式。

看看JExcel:

http://jexcelapi.sourceforge.net/

我无法解释内存占用情况,但是很明显,对于大型电子表格,您将需要消耗大量内存进行处理。

你应该能够使用它的xls和xlsx:

用Java读取XLSX文件