XSSFWorkbook не будет загружать небольшой файл Excel

Я попытался инициализировать XSSFWorkbook с помощью файла Excel с расширением.xlsm, используя Apache POI в Java, но загрузка файла заняла много времени (я уже ждал 1 час, и он все еще загружался). Сам файл xlsm довольно мал (1 МБ), имеет 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" была успешно инициализирована. Однако мне нужно прочитать файл со всеми листами, поэтому я хотел бы знать, есть ли другой способ сделать это.

0 ответов

Другие вопросы по тегам