Как открыть офисные документы прямо на сайте (в браузере)

Первое с чего хочется начать - это прежде всего для того, чтобы иметь возможность открывать прайс-лист в формате xls онлайн, необходимо его скачать на сайт и распаковать из zip-архива. Поступили следующим образом, создали скрипт на php, который бы скачивал архив в папку один раз в день и распаковывал его.
Скрипт на 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
Далее заходим на хостинг в административную панель и добавляем в cron новое задание, которое будет раз в день запускать этот скрипт.
В результате работы этого скрипта получим, всегда свежий прайс-лист фирмы 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, но и у него проблемы с отображением шрифтов.

Скриншоты

 10.10.2016 
 Автор:
 сайт, битрикс, прайс-лист, прайс,


Как открыть офисные документы прямо на сайте (в браузере)
Не так давно задался вопросом, как можно открывать офисные документы на сайте? В частности встала зад... 2016-10-10T15:03:54+03:00
Как открыть офисные документы прямо на сайте (в браузере)
Как открыть офисные документы прямо на сайте (в браузере)
https://softonit.ru/articles/other/officedocinsite/

Возврат к списку