Coldfusion — чтение больших файлов excel (xlsx) с помощью cfspreadsheet

У меня есть большой файл .xlsx (20 МБ), мне нужно прочитать данные и создать файлы, разделенные табуляцией.

У меня проблемы с загрузкой этого файла (OutOfMemoryError) и ошибка кучи java при использовании cfspreadsheet

Обновить

  • КолдФьюжн 10
  • Ява 7

person brahmam    schedule 11.11.2020    source источник
comment
Нужен пример кода того, что вы делаете. Это на вашей локальной машине или на сервере? Какая версия ColdFusion? Какая версия Явы?   -  person Adrian J. Moreno    schedule 11.11.2020
comment
Так какие у вас настройки памяти? Также xlsx представляет собой zip-архив XML-документов. Вы пытались вместо этого открыть xml? См.: coldfusion.adobe.com/2018. /11/ (Отказ от ответственности: я сделал это видео для Word, но концепции все равно должны применяться)   -  person James A Mohler    schedule 11.11.2020
comment
Я работаю с coldfusion 10 с java7 и его удаленной машиной. в настройках администратора размер кучи был 4098mb. Я могу загрузить файлы на сервер, но когда я читаю ‹cfspreadsheet action=read src=upload file path ...› это вызывает ошибку памяти. У меня нет проблем с файлами размером 1 МБ. и я попытался с POIUtilities с той же ошибкой.   -  person brahmam    schedule 11.11.2020
comment
Загрузите текущую версию CF 2021 для разработчиков. Он также использует более новую версию Java и почти наверняка более новую версию POI. Посмотрите, решает ли это проблему.   -  person James A Mohler    schedule 11.11.2020
comment
Это может быть не решаемо.   -  person Dan Bracuk    schedule 11.11.2020
comment
@brahmam Здесь нужно больше информации. Сколько строк в этих файлах? Я знаю, что в старых версиях CF есть ограничение на количество строк, которые могут быть записаны с помощью cfspreadsheet, а также может быть ограничение на то, что можно прочитать. Можете ли вы попробовать обновить сервер для использования Java 8? Ваш CF 10 полностью пропатчен? coldfusion.adobe.com/2014 /10/   -  person Adrian J. Moreno    schedule 12.11.2020
comment
Мой совет. Даже не пытайтесь использовать cfspreadsheet. Я уже шел по этому пути в более старой версии CF. Я не могу вспомнить, была ли это CF9 или CF11, но при работе с большими электронными таблицами cfspreadsheet настолько пожирает память, что вы ничего не можете сделать, чтобы предотвратить OutOfMemoryError. Решение, которое я нашел, состоит в том, чтобы использовать стороннюю программу, которая принимает параметры командной строки и cfexecute вместо этого. Если вы используете Windows, попробуйте посмотреть этот stackoverflow.com/questions/5256733/   -  person user12031119    schedule 12.11.2020
comment
@AdrianJ.Moreno в каждом файле excel было более 50 тысяч строк. и я не должен обновлять ни CF, ни Java.   -  person brahmam    schedule 12.11.2020
comment
@JamesAMohler это очень старое приложение, и мы не планируем обновлять CF2020.   -  person brahmam    schedule 12.11.2020
comment
@ user12031119 Спасибо   -  person brahmam    schedule 12.11.2020