Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
内存高效的Java库来读取Excel文件?_Java_Excel_Memory_File Io - Fatal编程技术网

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

内存高效的Java库来读取Excel文件?,java,excel,memory,file-io,Java,Excel,Memory,File Io,是否有一个内存高效的Java库来读取大型Microsoft Excel文件(包括.xls和.xlsx)?我对ApachePOI的经验非常有限,从我的记忆来看,这似乎是一个巨大的内存消耗(尽管这可能只是为了写作,而不是为了阅读)。有更好的吗?还是我记错了和/或误用了POI 对它来说,拥有一个“友好的”开源许可证也很重要。Apache的POI库有一个内存占用较小的。不幸的是,它只适用于HSSF(可怕的电子表格格式),而不适用于XSSF(XML电子表格格式-用于OOXML文件)。Excel文件格式(两

是否有一个内存高效的Java库来读取大型Microsoft Excel文件(包括.xls和.xlsx)?我对ApachePOI的经验非常有限,从我的记忆来看,这似乎是一个巨大的内存消耗(尽管这可能只是为了写作,而不是为了阅读)。有更好的吗?还是我记错了和/或误用了POI


对它来说,拥有一个“友好的”开源许可证也很重要。

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

Excel文件格式(两者)庞大且极其复杂,任何读取其所有可能内容的内容都将同样庞大而复杂。记住,它们可以包含范围、宏、链接、嵌入的内容等

但是,如果您正在阅读一些简单的内容,如数字网格,我建议您首先将电子表格转换为CSV等更简单的格式,然后再阅读该格式。

看看Jetcel:

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

您应该能够将其用于xls和xlsx:


据我所知,只有一个是。我自己从来没有用过它,所以无法对内存使用情况做出评论。多少内存对你来说太多?多少内存太多取决于你。理想情况下,如果该文件第一次保存为.csv文件时可以进行处理,我希望它可以作为Excel文件进行处理。理想情况可能不太可能,但我希望更接近。CSV是首选格式,但有时用户可能会将相当于CSV的数据存储在.xls文件中。我不想告诉他们打开Excel,另存为CSV,然后再回到我的应用程序。很明显,这是一个可行的变通方法,但它远不是理想的。谢谢,但令人遗憾的是,它不适用于XSSF,因为这将用于具有大量(>65536)行的文件。实际上,看起来XSSF可能有变通方法。有人能对此发表评论吗:@Michael似乎是一个不错的解决办法,尽管涉及的问题稍微多一些。因为XSSF最终是XML,所以使用SAX解析器来解析excel文件。JExcel API不处理
xlsx
文件