Помогите с парсингом Excel

Labus
На сайте с 02.11.2006
Offline
100
760

Всем, доброго дня! :)

Столкнулся с такой проблемой на nic.ru - на сайте есть скрипт, который выкачивает со стороннего сайта прайс в архиве RAR, после разархивирует его, открывает и парсит в БД. Проблема в том, что файл конечный Excel весом 100 Мб, при его открытии на хостинге nic.ru идет ограничение памяти до 192 Мб. - коточе, в сумму с другими процессами прайс даже открыться не успевает и падает. Локально все работает!

Плз, помогите, может можно:

1. Разбить как-то прайс? но вроде он также должен полностью открыться.

2. Excel можно как-то потоково открывать?

3. Может его как-то экспортировать в другой формат ,CSV или XML?

Заранее ,всем спасибо!

Продвижение сайтов от 25.000 в месяц! Качественный маркетинг: компания WEB-логика (http://www.web-logic.ru/)
L0
На сайте с 27.09.2011
Offline
0
#1

Конвертировать смысла нет, так как его так же надо будет полностью грузить в память. Насчёт распаривания по частям, то наверное возможно, но надо скрипт переписать для этого, по цене дешевле будет более дорогое железо взять.

Labus
На сайте с 02.11.2006
Offline
100
#2

Конвертировать как раз можно - тогда чтение можно задать потоковое или с принудительным указанием блока для парсинга, что экономит память значительно. но проблема в том, что скорее всего при конвертировании Excel должен открыться полностью, что опять невозможно :)

Может кто-то посоветует другое решение?

M
На сайте с 01.12.2009
Offline
235
#3

Можно 3

есть перловый скрипт, который конвертит XLS в CSV

но ему нужны определенные модули

не известно, есть ли они на хостинге

Locale::Recode

Unicode::Map
Spreadsheet::ParseExcel
Spreadsheet::ParseExcel::FmtUnicode (should be included with Spreadsheet::ParseExcel)
Text::CSV_XS

xls2csv

Администратор Linux,Freebsd. построения крупных проектов.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий