Могу ли я надежно создавать документы Excel из приложения PHP на сервере Linux?

StackOverflow https://stackoverflow.com/questions/226052

  •  03-07-2019
  •  | 
  •  

Вопрос

В каком состоянии генерируются документы Excel из приложения PHP на сервере Linux?

Мне интересно создавать файлы Excel для Office 97 (xls). Мое ограниченное исследование по этой теме обнаружило этот пакет Pear . Похоже, что в бета-статусе с 2006 года.

Можете ли вы поделиться своими успехами или неудачами при создании файлов Excel из PHP? Доступен ли надежный и зрелый инструмент?

Обновление: для этого приложения мне нужно создать файл Excel, а не просто файл CSV.

Это было полезно?

Решение

Есть нечто гораздо лучшее, чем пакет PEAR!

PHPExcel

Другие советы

Я использовал этот пакет 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 и добавлять формулы, которые ему нужны, после факта.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top