Я использую библиотеку POI Apache для импорта большого количества данных в файлы Excel. Я не могу использовать HSSF-модель, потому что ей требуется слишком много памяти, а Java выдает исключение кучи памяти. То, как я нашел, это модель рабочей книги SXSSF, которая записывает каждый N строк в файл вместо хранения всей книги в памяти. Но я не могу найти способ, как сохранить его в .xls (Excel 2003 и более низкий формат) вместо .xlsx.Сохранение файла SXSSF как .xls
File f = new File("file.xlsx");
f.createNewFile();
SXSSFWorkbook wb = new SXSSFWorkbook(200);
//inputing values here
FileOutputStream fileOut = new FileOutputStream(f);
wb.write(fileOut);
fileOut.close();
Я установил 2k барана кучи для приложения, но этого было недостаточно. И на ПК пользователей нет режима, поэтому я не могу увеличить размер кучи. Тогда единственный способ использовать .xlsx? – crzbt
Если вы экспортируете огромное количество данных, вам все равно нужно использовать .xlsx, поскольку .xls имеет довольно небольшие (по современным меркам) ограничения на количество строк и столбцов. Если вам удастся использовать 2 ГБ памяти, то вы почти наверняка находитесь в этих пределах! – Gagravarr
У меня есть ~ 40k строк и ~ 7-10 столбцов. Насколько я знаю, файлы xls могут обрабатывать до 65536, что может быть достаточно для меня – crzbt