我尝试使用Java中的Apache POI使用扩展名为.xlsm的Excel文件初始化XSSFWorkbook,但是加载文件需要花费大量时间(我已经等了1个小时但仍在加载)。 xlsm文件本身相当小(1MB),有50张(每张表有一个由5x20单元格构成的表)和一个宏脚本。我目前使用的代码是:
String templateFilePath = filePath + fileName + ".xlsm";
XSSFWorkbook newWorkBook = new XSSFWorkbook(templateFilePath);
请注意,我尝试使用以下方式加载文件:
Workbook newWorkBook = WorkbookFactory.create(new FileInputStream(templateFilePath) );
Files.readAllBytes(Paths.get(templateFilePath));
File file = new File(templateFilePath);
File file = new File(templateFilePath);
OPCPackage opcPackage = OPCPackage.open(file);
XSSFWorkbook newWorkBook = new XSSFWorkbook(opcPackage);
......仍然得到了相同的结果。此外,我尝试过其他文件扩展名(.xlsx和.xls)无济于事。
其他说明: 没有显示内存错误。它只是无限加载文件。 我做了另一个测试,我从文件中删除了一些工作表,只剩下8个。这样就成功初始化了“newWorkBook”。但是,我需要阅读所有表格的文件,所以我想知道是否还有其他方法可以这样做。