Скажите ну зачем так извращаться?
Ну бывают такие ситуации, когда все остальные варианты не подходят, но решить проблему нужно и стоит вопрос жизни и смерти)))
Так вот, встал у меня вопрос об автоматизации интернет-магазина, нужно скачать с сайта поставщика прайс, перегнать его в CSV и дать обработчику на PHP, который загонит этот прайс в базу данных, переделает цены по текущему курсу доллара, удалит категории, которые не продает этот интернет-магазин. В общем нужно сделать так, чтобы мененджеры плювали в потолок и не мучались по утру с изменением и импортом прайсов, а занимались клиентами. И чтобы покупателям было хорошо, то что прайс обновляется рано рано утром и цены уже актуальны.
Но вот ведь засада, у поставщика кривая генерация прайсов, в прайсе не указана кодировка, файл нормально открывается в инфра-офисе и в экселе (у которых по умолчанию кодировка win1251), что интересно - утилита xls2csv видимо тоже пытается прочитать кодировку файла и вылетает с ошибкой
price.xls is not OLE file or Error
PHPExel тоже без бубна не станет читать такой файл
В общем скачал я скрипт http://www.artofsolving.com/files/DocumentConverter.py
Для его работы нам надо опен-офис и python-uno, опен офис по причине корректной работы с нашим прайсом я поставил от инфра-ресурса, он ставится в директорию /opt, кстати у меня на сервере Debian Squeeze amd64
Сперва запускаем soffice
/opt/openoffice.org3/program/soffice "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" -nologo -headles&
по ссылке выше мы скачали файл DocumentConverter.py
синтаксис у него простой
(по расширению автоматически определяется формат для конвертирования)
если вы уже написали свой супер-скрипт, который работает напрямую с xls но не хочет работать с определенным прайсом, можно делать конвертацию в тот же формат, тем самым излечивая xls файл от ошибок
кстати забыл, еще для нормальной работы потребуется xvfb
Если у кого то будут вопросы по реализации подобных вещей, пишите в комментах, постараюсь помочь, спасибо за внимание.
Комменты доступны для анонимных юзеров
Ну бывают такие ситуации, когда все остальные варианты не подходят, но решить проблему нужно и стоит вопрос жизни и смерти)))
Так вот, встал у меня вопрос об автоматизации интернет-магазина, нужно скачать с сайта поставщика прайс, перегнать его в CSV и дать обработчику на PHP, который загонит этот прайс в базу данных, переделает цены по текущему курсу доллара, удалит категории, которые не продает этот интернет-магазин. В общем нужно сделать так, чтобы мененджеры плювали в потолок и не мучались по утру с изменением и импортом прайсов, а занимались клиентами. И чтобы покупателям было хорошо, то что прайс обновляется рано рано утром и цены уже актуальны.
Но вот ведь засада, у поставщика кривая генерация прайсов, в прайсе не указана кодировка, файл нормально открывается в инфра-офисе и в экселе (у которых по умолчанию кодировка win1251), что интересно - утилита xls2csv видимо тоже пытается прочитать кодировку файла и вылетает с ошибкой
price.xls is not OLE file or Error
PHPExel тоже без бубна не станет читать такой файл
В общем скачал я скрипт http://www.artofsolving.com/files/DocumentConverter.py
Для его работы нам надо опен-офис и python-uno, опен офис по причине корректной работы с нашим прайсом я поставил от инфра-ресурса, он ставится в директорию /opt, кстати у меня на сервере Debian Squeeze amd64
Сперва запускаем soffice
/opt/openoffice.org3/program/soffice "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" -nologo -headles&
по ссылке выше мы скачали файл DocumentConverter.py
синтаксис у него простой
python DocumentConverter.py price.xls price.csv
(по расширению автоматически определяется формат для конвертирования)
если вы уже написали свой супер-скрипт, который работает напрямую с xls но не хочет работать с определенным прайсом, можно делать конвертацию в тот же формат, тем самым излечивая xls файл от ошибок
кстати забыл, еще для нормальной работы потребуется xvfb
Если у кого то будут вопросы по реализации подобных вещей, пишите в комментах, постараюсь помочь, спасибо за внимание.
Комменты доступны для анонимных юзеров
Комментариев нет:
Отправить комментарий