Apache POI 非常慢

Apache POI is extremely slow

我在网上看到很多关于 Apache POI 性能的问题,但是其中 none 和我的情况一样慢,并且 none 他们的解决方案对我有用。我正在使用 NetBeans 8.0.2、JDK 1.8 和 POI-3.12-20150511。要读取 300 KB 的 xls(有 3000 行和几列),此行需要 10 秒才能 运行:

FileInputStream file = new FileInputStream(filename);
HSSFWorkbook workbook = new HSSFWorkbook(file); //this line takes 10 seconds

要读取更大的文件(如 1 MB xls),创建 HSSFWorkbook 可能需要一分钟多的时间。

我尝试通过添加以下参数禁用 POI 日志并增加 JVM 内存:

-Dorg.apache.poi.util.POILogger=org.apache.commons.logging.impl.NoOpLog -J-Xmx1024m

他们没有帮助。我的机器有 12 GB 内存,所以内存应该不是问题。

不知道是Apache POI的问题还是JVM的问题。但是我已经将 3000 行数据导入 MySQL,从 MySQL 读取数据需要 2 秒(而从 Excel 读取数据需要 10 秒)。

原来是网络问题。 excel文件所在的驱动器的连接速度很慢。