Excel-файл из PHP

Появилась задача создания простых таблиц excel налету.
В принципе, если поискть в сети, то можно найти ряд готовых инструментов для создания *.xls файлов.
Делюсь с вами коротким обзором.


Spreadsheet_Excel_Writer — целый пакет для решения подобных задач. Но необходимо наличие PEAR на сервере, а в подавляющем большинстве виртуальных хостингов PEAR не подключен. Конечно, можно собрать все файлы пакета в одном месте, поиграться с путями, но в моем случае овчинка не стоит выделки.

Можно генерить xls-файлы используя COM-объекты (пример: http://www.spravkaweb.ru/php/sovet/excelcom), но COM — это это прерогатива windows-серверов, поэтому и этот вариант отпадает.

PHP Simple Excel File Generator — рабочее название psxlsgen. Класс для генерирования excel-файлов. Честно говорю, что не успел попробовать его в работе. Может когда-нибудь придется и его поковырять.

Ну и конечно можно поискать другие классы для решения нашей задачи на http://www.phpclasses.org/ по ключам excel php

Но для решения моей задачи не пригодилось ничего из описанного мной выше. Ведь excel запросто понимает html-код. Поэтому мне для создания простого списка элементов в excel достаточно было сгенерировать html-страницу c отправкой соответствующих заголовков.

Пример:

{code type=PHP}
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=file.xls");
header("Content-Transfer-Encoding: binary");

print "

Заголовок 1 Заголовок 1
Элемент 1 Описание 1
Элемент 2 Описание 2

";
{/code}

Share

Comments

  1. У меня проблема в том, что нужно сделать полноценную экселевскую страничку со стилями. Поэтому вариант с хтмл-ем не подходит, так как в этом случае получается страница с одинаковыми ячейками и все стили игнорируются.
    У меня вопрос: ты хоть сам этот код проверял? Потому что у меня даже ширина ячейки не выставлялась таким примитивным образом.

  2. Петька Сокольников
    14.01.2011 - 22:42

    @Kirill
    Под рукой нет MS Excel, попробовал сейчас в OpenOffice Calc, форматирование работает нормально. Ширина ячеек получается нужной величины, html-теги простейшего форматирования текста тоже воспринимаются Calc’ом нормально.

  3. Шмоня
    16.09.2012 - 20:50

    Давно искала решение проблемы экспорт из PHP в Excel. Необходимо передавать только сформированную таблицу, воспользовалась методом отправки заголовков, но случился конфуз. При извлечении более 120 записей из базы данных на лист является нечитабельная «крокозябра». Подскажите что с этим можно сделать?

  4. @Шмоня
    добавить после header-ов
    echo »;

Добавить комментарий

Your email address will not be published / Required fields are marked *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.