Скрипт на php самый примитивный:
<? // Скачиваем архив $url = 'http://www.1c.ru/ftp/pub/pricelst/price_1c.zip'; $path = './путь куда распаковываем прайс-лист/price_1c.zip'; file_put_contents($path, file_get_contents($url)); // распаковываем архив в эту же папку на сервере $zip = new ZipArchive; $res = $zip->open($path); if ($res === TRUE) { $zip->extractTo('./путь куда распаковываем прайс-лист/'); $zip->close(); echo 'ok'; } else { echo 'failed'; } ?>В результате работы данного скрипта получим три файла в папке './путь куда распаковываем прайс-лист/'
- price_1c.zip
- PRICE_1C.XLS
- PRICE_1C_OLD.XLS
В результате работы этого скрипта получим, всегда свежий прайс-лист фирмы 1С (их два, просто они разной структуры, но показывают одно и тоже, сгруппированы по разному), но уже на своем сайте.
Далее, необходимо открывать онлайн в регулярно распакованном архиве прайс-лист. Для этого случая используем онлайн просмотр документов. Я нашел три сервиса, каждый из которых обладает своими преимуществами и недостатками. Все они работают по принципу, просто открываем ссылку с заданным параметром, в котором передаем распакованный архив и запускается просмотр прайса.
1. Google Docs Viewer
Самый быстрый - это Google Docs Viewer. Но он же и самый простой, он не смог корректно открыть прайс 1С, т.к. в нем используются сгруппированные строки, которые отказались нормально отображаться. Запуск очень прост:http://docs.google.com/viewer?url=http://softonit.ru/price1c/PRICE_1C_OLD.XLS
Параметры запуска:- url - что открыть.
- a — тип возвращаемого документа:
- “v” — будет отрыто приложение просмотра документа (это значение по умолчанию);
- “gt” — будет возвращен xml документ с распознанным текстом;
- “bi” — будет возвращено изображение страницы документа в формате PNG8 (параметр pagenumber обязателен);
- pagenumber — номер страницы (только при a=bi), может быть равен только существующей странице в документе;
http://docs.google.com/viewer?url=http://softonit.ru/price1c/PRICE_1C_OLD.XLS&a=bi&pagenumber=3
- w — ширина страницы в px (только при a=bi и указанном параметре pagenumber), минимум 1, максимум 2400 (≈A4x300px/inch), по умолчанию 800 (≈A4x100px/inch);
http://docs.google.com/viewer?url=http://softonit.ru/price1c/PRICE_1C_OLD.XLS&a=bi&pagenumber=3&w=250
- q — источник документа в кэш Google Search (замена параметру url);
- embedded — включение/выключение (значения соответственно true или false) встраиваемого в сторонние html-страницы (по умолчанию false);
http://docs.google.com/viewer?url=http://softonit.ru/price1c/PRICE_1C_OLD.XLS&embedded=true
Можно встроить открытие в iframe.
2. Zoho Viewer
Этот вариант получше. Справился с открытием прайса 1С, все как положено, группировки увидел и их можно открывать.Работает по ссылке:
https://sheet.zoho.com/sheet/view.do?url=http://softonit.ru/price1c/PRICE_1C_OLD.XLS&name=Прайс
- url - ссылка источник, которая будет открыта
- name имя открываемого документа
3. Office Online
Как ни крути, но самый лучший вариант - это все таки открытие в нативном приложении и/или сервисе.Работает по ссылке:
https://view.officeapps.live.com/op/view.aspx?src=http%3A%2F%2Fwww.softonit.ru%2Fprice1c%2FPRICE_1C_OLD.XLS
- src - ссылка источник, которая будет открыта
Надо отметить, что на 100% с заданием никто не справился, на скриншотах видно, что до оригинала не дотягивает никто. Ближе всего Office Online, но и у него проблемы с отображением шрифтов.