Могу ли я надежно создавать документы Excel из приложения PHP на сервере Linux?
-
03-07-2019 - |
Вопрос
В каком состоянии генерируются документы Excel из приложения PHP на сервере Linux?
Мне интересно создавать файлы Excel для Office 97 (xls). Мое ограниченное исследование по этой теме обнаружило этот пакет Pear . Похоже, что в бета-статусе с 2006 года.
Можете ли вы поделиться своими успехами или неудачами при создании файлов Excel из PHP? Доступен ли надежный и зрелый инструмент?
Обновление: для этого приложения мне нужно создать файл Excel, а не просто файл CSV.
Решение
Есть нечто гораздо лучшее, чем пакет PEAR!
Другие советы
Я использовал этот пакет PEAR, и он отлично подходит для файлов, совместимых с Office '97 -2000.
Если это простая электронная таблица, Office также может обрабатывать CSV-файлы, которые PHP может создавать легко и просто . р>
Как насчет использования таблиц (электронная таблица - это таблица, так что все в порядке) и размещения этих строк в верхней части PHP-скрипта, который создает таблицы:
header("Content-Type: application/vnd.ms-excel");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
Или вы можете просто создать CSV-файл, так как Excel может его открыть.
Я успешно использовал пакет PEAR, но есть некоторые ограничения при реализации сложных формул. Это как-то связано с тем, как Excel сохраняет формулу вместе с последним вычисленным результатом. Иногда, даже если формула верна, при первом открытии листа ячейки отображаются как пустые. Как только ячейка имеет фокус, а затем теряет фокус, выполняется вычисление и ячейка заполняется.
Библиотека на самом деле является портом из библиотеки perl, которая немного более полная, но имеет те же проблемы.
Я использовал PERL Spreadsheet :: WriteExcel в нескольких проектах без проблем. Возможно, вам придется внести некоторые исправления и обертки для улучшения функциональности и упрощения, но я нахожу это нормально. Р>
Мне это нравится, потому что его платформа независима, быстра и проста в настройке. Р>
Самый простой способ - использовать заголовок " fake " файл Excel. Вот код для начала загрузки в виде файла Excel. Клиентский Excel просто проанализирует любой найденный HTML-код (таблицы, csv, ...) и отобразит его в хорошем формате, подобном Excel.
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=excel.xls");
В настоящее время все находится в бета-статусе. Вам действительно нужны файлы Excel с forumlas и все такое, или вам просто нужно открыть список записей в Excel для работы?
Обычно я обнаружил, что, когда клиенту нужен файл Excel, на самом деле я могу просто сгенерировать файл CSV, и они могут работать с ним в Excel и добавлять формулы, которые ему нужны, после факта.