#java #excel #apache-poi
#java #excel #apache-poi
Вопрос:
У меня есть шаблон Excel размером 6 МБ с помощью vba, и при попытке открыть его с помощью XSSFWorkbook, и это не сработает, для открытия Excel требуется 15 минут, что слишком много для наших нужд.
Я читал о SXSSFWorkbook и о том, насколько он эффективнее (с точки зрения памяти).
Проблема в том, что я не могу открыть шаблон с помощью SXSSFWorkbook, что мне нужно сделать, это создать XSSFWorkbook, а затем передать его в SXSSFWorkbook, но это все еще связано с использованием XSSFWorkbook для загрузки файла, что просто займет слишком много времени.
Мой код сейчас выглядит так:
File file = new File("Template.xlsm");
ZipSecureFile.setMinInflateRatio(0);
XSSFWorkbook wb = new XSSFWorkbook(file); // Version that would take too long
SXSSFWorkbook wb = new SXSSFWorkbook(100); // Version that is more efficient but can't directly load a template
Комментарии:
1. 15 минут для открытия большой электронной таблицы кажутся очень медленными, обычно с Apache POI должно быть намного быстрее, можете ли вы использовать профилировщик, чтобы увидеть, куда уходит время?
2. SXSSFWorkbook предназначен для записи больших файлов, а не для их открытия. Вы могли бы попробовать github.com/pjfanning/excel-streaming-reader или poi.apache.org/spreadsheet/how-to.html#xssf_sax_api