Как загрузить 500 МБ книгу Excel POI и удалить лист из нее. Без проблемы с памятью? - PullRequest
0 голосов
/ 09 апреля 2019

Попытка загрузить 500 МБ файла .xlsm в память и удалить из него определенный лист.

OPCPackage pkg = OPCPackage.open("C:\\PROJECTS\\test.xlsm");
             XSSFWorkbook wb = new XSSFWorkbook(pkg);
             SXSSFWorkbook wb1 = new SXSSFWorkbook(wb, 100);

Извлечение памяти при загрузке ПКГ в рабочую книгу.

Есть ли другой альтернативный способ загрузки таких больших файлов без проблем с памятью?

У нас есть другая логика чтения, выполняемая для того же файла xlsm с использованием концепции синтаксического анализатора, то есть org.apache.xerces.parsers.SAXParser

Работает нормально.Есть ли возможность изменить лист Excel, используя концепцию парсера?

1 Ответ

1 голос
/ 09 апреля 2019

Просто запустите свою JVM с большим объемом памяти. Каковы параметры -Xms и -Xmx при запуске JVM?

Если вы хотите загрузить файл размером 500 МБ, вам потребуется значительно больше памяти, чем 500 МБ для вашей JVM.Попробуйте начать с java -Xms2048m -Xmx4096m, например.

...