Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.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 用XSSF加载空的.xlsx文件需要20秒。为什么?_Java_Excel_Apache Poi_Xssf - Fatal编程技术网

Java 用XSSF加载空的.xlsx文件需要20秒。为什么?

Java 用XSSF加载空的.xlsx文件需要20秒。为什么?,java,excel,apache-poi,xssf,Java,Excel,Apache Poi,Xssf,我使用以下行打开一个空的Excel2007文档: OPCPackage opcPackage = OPCPackage.openOrCreate(file) wb = new XSSFWorkbook(opcPackage); 有趣的是,这需要20秒的时间。为什么? 其他人抱怨XSSF,因为加载一个大文件太慢了。但对我来说,它只是一个空文件,应该在不到1秒的时间内完成 只是猜测:我不确定您正在生成的文件是否是有效的xlsx文件。可能需要很长时间,因为它不是作为excel工作簿创建的 至于库的效

我使用以下行打开一个空的Excel2007文档:

OPCPackage opcPackage = OPCPackage.openOrCreate(file)
wb = new XSSFWorkbook(opcPackage);
有趣的是,这需要20秒的时间。为什么?


其他人抱怨XSSF,因为加载一个大文件太慢了。但对我来说,它只是一个空文件,应该在不到1秒的时间内完成

只是猜测:我不确定您正在生成的文件是否是有效的xlsx文件。可能需要很长时间,因为它不是作为excel工作簿创建的


至于库的效率:这里有一个关于快速xlsx写入的问题,poi在使用SXSSF库分支时表现出色。不确定它是否支持读取。

POI在处理XSSF格式时遇到一些问题。它速度很慢,打开一个10 MB的
.xlsx
文件也会消耗大量内存我建议在涉及
.xlsx
文件时尽量避免POI。该文件是否碰巧位于慢速远程驱动器上?你确定它真的是空的吗?在POI中加载一个几乎为空的.xlsx文件需要不到一秒钟的时间…我删除了每个单元格,但仍然是一样的。。至少我现在知道它应该在一秒钟内加载。。该文件可能已损坏?它已创建为excel 2007工作簿并保存为.xlsx。但可能过了一段时间它就腐败了。。我不知道。如果是这种情况,那么你可以使用from POI网页生成一个新文件。只需将
HSSF
构造函数替换为
XSSF
,并将名称更改为
.xlsx
。确保您使用最新的poi版本3.8。我从一开始就在使用xssf。此外,我删除了它,并根据我编写的代码创建了一个新的。也许我应该尝试删除该文件并创建一个新文件,但从excel本身开始。如果这在一秒钟内有效,则我的代码有问题。在接下来的三天里,我无法访问它。我会尽快通知你,我已经尝试了它。我创建了一个新的项目,只是加载一个在excel中生成的空xlsx文件,它仍然需要20秒。然后我改为poi3.9(beta版),只花了10秒。使用新的HSSF工作簿(..):280毫秒对.xls执行相同的操作