Ситуация следующая.
На хостинге стоят ограничения по используемой памяти скриптом.
Файл xls весит более чем 1 мб и в нем более 5000 строк данных.
Необходимо перенести данный файл в БД MySQL.
Использую ParseExcel
use Spreadsheet::ParseExcel;
use Spreadsheet::ParseExcel::FmtUnicode;
my $oExcel = new Spreadsheet::ParseExcel;
my $oFmtR = Spreadsheet::ParseExcel::FmtUnicode->new(Unicode_Map => "CP1251");
my $oBook = $oExcel->Parse("$file", $oFmtR);
но последнюю строчку данного кода скрипт не заканчивает по причине нехватки памяти процессу. Проверил у себя локально perl заюзал порядка 40 мб памяти, на хостинге же отведено 32 мегабайта.
Какие будут предложения по поводу реализации перевода данных из экзеля в БД MySQL?
Не предлагать следующие варианты:
1. Сохранить xls в csv - все равно может попасться файл который будет много весить и опять будет та же ошибка
2. Разбить файл на более мелкие
Мне приходит в голову что можно попробовать брать по, например, 100 строчек из файла. Но как это реализовать на parseexel?
Ну вообщем пишите какие будут предложения.
Желательно учитывать следующее:
1. файл может весить до 20мб
2. количество записей может быть до 100000.