php html to xls

Генерация XLS на PHP

php html to xls. Смотреть фото php html to xls. Смотреть картинку php html to xls. Картинка про php html to xls. Фото php html to xls

Очень часто необходимо делать экспорт каких-то данных, например, из базы данных в Excel-файл. Например, какой-нибудь прайс-лист преобразовать в удобный формат из базы данных и сгенерировать XLS-файл, который смогут без проблем скачать посетители. И вот как генерировать XLS на PHP, я расскажу в этой статье.

Нам потребуется с Вами отдельная библиотека, которая позволяет работать с Excel-файлами. Называется она PHPExcel, и скачать её можно здесь: http://phpexcel.codeplex.com.

Давайте её применим для генерация Excel-файла через PHP-скрипт:

setActiveSheetIndex(0); // Делаем активной первую страницу и получаем её
$page->setCellValue(«A1», «Hello»); // Добавляем в ячейку A1 слово «Hello»
$page->setCellValue(«A2», «World!»); // Добавляем в ячейку A2 слово «World!»
$page->setCellValue(«B1», «MyRusakov.ru»); // Добавляем в ячейку B1 слово «MyRusakov.ru»
$page->setTitle(«Test»); // Ставим заголовок «Test» на странице
/* Начинаем готовиться к записи информации в xlsx-файл */
$objWriter = PHPExcel_IOFactory::createWriter($phpexcel, ‘Excel2007’);
/* Записываем в файл */
$objWriter->save(«test.xlsx»);
?>

После выполнения скрипта у Вас рядом с PHP-файлом появится XLSX-файл, который Вы легко сможете открыть в Excel 2007 или более поздней версии.

Вообще, библиотека достаточно большая и там есть очень много возможностей. Но представленных в данной статье уже более, чем достаточно для большинства случаев.

php html to xls. Смотреть фото php html to xls. Смотреть картинку php html to xls. Картинка про php html to xls. Фото php html to xls

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Комментарии ( 12 ):

А можно с помощью этой библиотеки дополнить уже существующий XLS файл?

Спасибо. Но есть вопрос. Как скажем организовать, чтобы файл не записывался, а выдавался на скачивание? Понимаю, что вопрос странный, но опыта в php мало.

В таких случаях генерируют файл, затем дают на него ссылку. А раз в сутки запускается скрипт и удаляет все эти файлы. Так будет сделать правильно.

По поводу подключения к joomla. Похоже сперва надо сделать изменения, указанные в данной ссылке: http://klevismiho.com/phpexcel-and-joomla/ После этого работает стабильно.

У Вас опечатка // Добавляем в ячейку A2 слово «World1» Заместо знака восклицания, у Вас стоит «1»

Добрый вечер, скажите, а куда класть данную библиотеку? а то пример копирую, он не работает

выполняю скрипт,но файл не появляется

Михаил, а можно более подробно изложить использование данной библиотеки для простого примера: на страницу выводится html-таблица и значок(типа «сгенерировать таблицу») в углу. И только после клика по этому значку генерируется excel-файл с сохранением всех стилей (ну или большей их части по возможности). на сайте разработчика не понятно описано все. заранее спасибо!

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

Copyright © 2010-2021 Русаков Михаил Юрьевич. Все права защищены.

Источник

Обработка и оформление отчетов в Excel на PHP

Не редко при разработке некоего проекта, возникает необходимость в формировании отчетной статистики. Если проект разрабатывается на Delphi, C# или к примеру, на С++ и под Windows, то тут проблем нет. Всего лишь необходимо воспользоваться COM объектом. Но дела обстоят иначе, если необходимо сформировать отчет в формате excel на PHP. И чтобы это творение функционировало на UNIX-подобных системах. Но, к счастью, не так все плохо. И библиотек для этого хватает. Я свой выбор остановил на PHPExcel. Я уже пару лет работаю с этой библиотекой, и остаюсь доволен. Поскольку она является кроссплатформенной, то не возникает проблем с переносимостью.

PHPExcel позволяет производить импорт и экспорт данных в excel. Применять различные стили оформления к отчетам. В общем, все на высоте. Даже есть возможность работы с формулами. Только необходимо учитывать, что вся работа (чтение и запись) должна вестись в кодировке utf-8.

Установка библиотеки

Для работы необходима версия PHP 5.2.0 или выше. А также необходимы следующие расширения: php_zip, php_xml и php_gd2. Скачать библиотеку можно отсюда.

С помощью библиотеки PHPExcel можно записывать данные в следующие форматы:

Импорт данных из PHP в Excel

Рассмотрим пример по формированию таблицы умножения.

Далее нам необходимо получить наш *.xls файл. Здесь можно пойти двумя путями. Если предположим у вас интернет магазин, и клиент хочет скачать прайс лист, то будет лучше прибегнуть к такому выводу:

php html to xls. Смотреть фото php html to xls. Смотреть картинку php html to xls. Картинка про php html to xls. Фото php html to xls

Здесь сформированные данные сразу “выплюнутся” в браузер. Однако, если вам нужно файл сохранить, а не “выбросить” его сразу, то не нужно выводить HTTP-заголовки и вместо “php://output” следует указать путь к вашему файлу. Помните что каталог, в котором предполагается создание файла, должен иметь права на запись. Это касается UNIX-подобных систем.

Рассмотрим еще на примере три полезные инструкции:

Также обратите внимание на следующие необходимые для работы с отчетом методы:

Как мы видим, вышеприведенные методы являются парными. Поэтому мы можем работать с ячейками используя строковое или числовое представление координат. Что конечно же является дополнительным преимуществом в работе.

Оформление отчета средствами PHP в Excel

Очень часто возникает необходимость выделить в отчете некоторые данные. Сделать выделение шрифта или применить рамку с заливкой фона для некоторых ячеек и т.д. Что позволяет сконцентрироваться на наиболее важной информации (правда может и наоборот отвлечь). Для этих целей в библиотеке PHPExcel есть целый набор стилей, которые можно применять к ячейкам в excel. Есть конечно в этой библиотеке небольшой “минус” – нельзя применить стиль к нескольким ячейкам одновременно, а только к каждой индивидуально. Но это не создает дискомфорта при разработке web-приложений.

Назначить стиль ячейке можно тремя способами:

Заливка

Значением параметра fill является массив со следующими необязательными параметрами:

Или можно использовать следующие методы:

Вставка изображений

Довольно редко, но бывает полезным произвести вставку изображения в отчет. Это может быть логотип, схема и т.д. Для работы нам понадобятся следующие методы:

Код демонстрирующий алгоритм вставки изображения приведен ниже:

Вот так выглядит отчет со вставленным изображением:

php html to xls. Смотреть фото php html to xls. Смотреть картинку php html to xls. Картинка про php html to xls. Фото php html to xls

Шрифт

В качестве значения параметра font указывается массив, который содержит следующие необязательные параметры:

Или воспользоваться следующими методами:

Рамка

В качестве значения параметра borders указывается массив, который содержит следующие необязательными параметры:

Так же можно прибегнуть к использованию следующих методов:

$PHPExcel_Style->getBorders()->getLeft()->applyFromArray(array(‘style’ =>PHPExcel_Style_Border::BORDER_DASHDOT,’color’ => array(‘rgb’ => ’808080′)));

$PHPExcel_Style->getBorders()->getRight()->applyFromArray(array(‘style’ =>PHPExcel_Style_Border::BORDER_DASHDOT,’color’ => array(‘rgb’ => ’808080′)));

$PHPExcel_Style->getBorders()->getTop()->applyFromArray(array(‘style’ =>PHPExcel_Style_Border::BORDER_DASHDOT,’color’ => array(‘rgb’ => ’808080′)));

$PHPExcel_Style->getBorders()->getBottom()->applyFromArray(array(‘style’ =>PHPExcel_Style_Border::BORDER_DASHDOT,’color’ => array(‘rgb’ => ’808080′)));

$PHPExcel_Style->getBorders()->getDiagonal()->applyFromArray(array(‘style’ => PHPExcel_Style_Border::BORDER_DASHDOT,’color’ => array(‘rgb’ => ’808080′)));

$PHPExcel_Style->getBorders()->setDiagonalDirection(array(‘style’ =>PHPExcel_Style_Border::BORDER_DASHDOT,’color’ => array(‘rgb’ => ’808080′))).

Выравнивание

Значением параметра alignment является массив, который принимает на вход четыре необязательных параметра:

Или использовать следующие методы:

Формат представления данных

Параметр numberformat представляет собой массив, который включает только один параметр: code — формат данных ячейки.

Список возможных форматов

FORMAT_GENERALGeneral
FORMAT_TEXT@
FORMAT_NUMBER0
FORMAT_NUMBER_000.00
FORMAT_NUMBER_COMMA_SEPARATED1#,##0.00
FORMAT_NUMBER_COMMA_SEPARATED2#,##0.00_-
FORMAT_PERCENTAGE0%
FORMAT_PERCENTAGE_000.00%
FORMAT_DATE_YYYYMMDD2yyyy-mm-dd
FORMAT_DATE_YYYYMMDDyy-mm-dd
FORMAT_DATE_DDMMYYYYdd/mm/yy
FORMAT_DATE_DMYSLASHd/m/y
FORMAT_DATE_DMYMINUSd-m-y
FORMAT_DATE_DMMINUSd-m
FORMAT_DATE_MYMINUSm-y
FORMAT_DATE_XLSX14mm-dd-yy
FORMAT_DATE_XLSX15d-mmm-yy
FORMAT_DATE_XLSX16d-mmm
FORMAT_DATE_XLSX17mmm-yy
FORMAT_DATE_XLSX22m/d/yy h:mm
FORMAT_DATE_DATETIMEd/m/y h:mm
FORMAT_DATE_TIME1h:mm AM/PM
FORMAT_DATE_TIME2h:mm:ss AM/PM
FORMAT_DATE_TIME3h:mm
FORMAT_DATE_TIME4h:mm:ss
FORMAT_DATE_TIME5mm:ss
FORMAT_DATE_TIME6h:mm:ss
FORMAT_DATE_TIME7i:s.S
FORMAT_DATE_TIME8h:mm:ss
FORMAT_DATE_YYYYMMDDSLASHyy/mm/dd; @
FORMAT_CURRENCY_USD_SIMPLE«$»#,##0.00_-;@
FORMAT_CURRENCY_USD$#,##0_-
FORMAT_CURRENCY_EUR_SIMPLE[$EUR ]#,##0.00_-

Пример настройки для формата данных ячейки:

А можно и воспользоваться методом:

Защита ячеек

В качестве значения параметра protection выступает массив, который содержит два необязательных параметра:

Или использовать следующие методы:

Теперь мы знаем, какие есть настройки стилей и какие присутствуют параметры у каждого стиля. Сейчас мы к ячейкам таблицы применим стиль оформления, но проделаем это тремя способами. Первый способ заключается в создании массива настроек, который в качестве параметра мы передадим в метод applyFromArray, класса PHPExcel_Style.

Далее мы применим созданный нами стиль к ячейкам excel.

Сейчас применим тот же стиль, но используя другую методику.

Вот что у нас получилось:

php html to xls. Смотреть фото php html to xls. Смотреть картинку php html to xls. Картинка про php html to xls. Фото php html to xls

Для получения данных о стиле конкретной ячейки необходимо использовать один из следующих методов, который вернет экземпляра класса PHPExcel_Style:

А теперь рассмотрим третий способ назначения стиля ячейкам путем дублирования стиля. Пример использования представлен ниже (предполагается, что к ячейке “B2” применен некий стиль и мы его хотим продублировать для диапазона ячеек “F2:F10”):

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

Я думаю, что не часто кто-то пользуется возможностью добавления комментариев к ячейкам, но это сугубо мое личное мнение, однако такая возможность имеется. Добавить комментарий к ячейке довольно просто, что видно из примера ниже:

Следует заметить, что при повторном вызове метода createTextRun() новый комментарий добавится к уже существующему, а не заменит его. Следует отметить, что данный метод возвращает объект класса PHPExcel_RichText_Run, у которого имеются методы для установки и получения параметров шрифта:

Вот какой комментарий мы должны получить:

php html to xls. Смотреть фото php html to xls. Смотреть картинку php html to xls. Картинка про php html to xls. Фото php html to xls

Вставка ссылки

Вставка ссылок в ячейку тоже не вызывает каких-либо затруднений, что можно видеть из нижеописанного примера:

Так же в виде ссылки может быть использован, к примеру, email адрес: mailto:example@mail.com.

Чтение данных из Excel

Формировать отчеты и применять к ним стили это конечно отлично. Но на этом возможности библиотеки PHPExcel не заканчиваются. Ну что же, посмотрим на что она еще способна. А способна она еще и читать данные из файлов формата *.xls / *.xlsx.

С помощью библиотеки PHPExcel можно читать следующие форматы:

Для работы нам понадобятся объекты двух классов:

Для демонстрации выведем данные из таблицы с информацией об автомобилях.

php html to xls. Смотреть фото php html to xls. Смотреть картинку php html to xls. Картинка про php html to xls. Фото php html to xls

Пример чтения файла представлен ниже:

Первый вариант

Второй вариант

php html to xls. Смотреть фото php html to xls. Смотреть картинку php html to xls. Картинка про php html to xls. Фото php html to xls

В первом варианте мы производим чтение данных, из ячеек используя итераторы. А во втором, мы используем индексную адресацию для обращения и получения данных из ячеек листа. Получить данные о количестве строк и столбцов, можно воспользовавшись следующими методами класса PHPExcel_Worksheet:

Другие полезные методы

Возможностей по работе с отчетами формата excel с использованием PHP как мы видим, достаточно много. Но мы рассмотрим еще несколько полезных методов, которые могут оказаться весьма полезны в работе:

Примечание: Методы stringFromColumnIndex и columnIndexFromString примечательны тем, что их можно использовать без создания объекта класса. Пример использования представлен ниже:

С помощью продемонстрированных возможностей, можно формировать и считывать любые отчеты в виде файлов, формата excel. А также были продемонстрированы почти все возможные методы для работы со стилями.

Источник

PHP создание XLS

Беда кроется в кодировке. При выгрузке получатся кракозябры, если не указать на выгружаемой странице кодировку.

Как выгрузить данные из PHP в XLS

Приведу готовый пример выгрузки данных с сайта в xls файл. Выгружать будем через PHP. Для начала рассмотрим серверную часть. Создаём PHP файл в кодировке UTF-8 (без BOM) со следующим содержанием:

Первая колонка

Вторая колонка

Вторая строчка

Последняя ячейка

Первая строка с «header» говорит, что скачиваться будет не просто страница, а application/vnd.ms-excel в формате вложения (attachment).

На второй строке формируется имя файла. В него вставлена дата с точностью до секунд date(‘Y-m-d H:i:s’). Сделано специально для удобства отладки, чтобы загружать много раз.

Далее идут указания не кешировать страницу Cache-Control: no-store, no-cache, must-revalidate. С уточнением, что время валидности кеша давно прошло.

После php скрипта первой строчкой идёт тег. В котором стоит «text/html; charset=utf-8«. Казалось бы, можно перенести задание кодировки charset внутрь первой строчки header. Но нет! Если задать кодировку через php, то она не воспримется экселем. И из файла полезут не русские символы, а непонятные значки.

Серверная часть готова. Остаётся сделать ссылку для скачивания на стороне клиента. Выглядеть код будет примерно так:

При клике на такую ссылку начнётся скачивание.

Заключение

Чтобы не быть голословным, создал файл с приведённым скриптом и кнопку:

Проверьте, файл должен возвращаться в правильной кодировке.

Источник

Как создать xls/xlsx средствами php?

php html to xls. Смотреть фото php html to xls. Смотреть картинку php html to xls. Картинка про php html to xls. Фото php html to xls

php html to xls. Смотреть фото php html to xls. Смотреть картинку php html to xls. Картинка про php html to xls. Фото php html to xls

php html to xls. Смотреть фото php html to xls. Смотреть картинку php html to xls. Картинка про php html to xls. Фото php html to xls

php html to xls. Смотреть фото php html to xls. Смотреть картинку php html to xls. Картинка про php html to xls. Фото php html to xls

php html to xls. Смотреть фото php html to xls. Смотреть картинку php html to xls. Картинка про php html to xls. Фото php html to xls

svetlov97, header.php из примеров? Он там для примера, внезапно. У вас вместо него может быть что-то совсем другое.

Bootstrap.php пытается подключить автозагрузчик, и выдает ошибку, если не получилось.
О автозагрузке читайте PSR-4

php html to xls. Смотреть фото php html to xls. Смотреть картинку php html to xls. Картинка про php html to xls. Фото php html to xls

svetlov97, можно, но придется все необходимые классы загрузить вручную.
(автозагрузчиком проще).

Вы же умеете делать require? Автозагрузчик делает ровно то-же самое.
Если при вызове какого-то класса оказывается, что соответствующий файл не подключен, автозагрузчик делает ему require. И все.

Из-за того, что вам лень прочесть PSR-4 вы уже несколько дней страдаете на ровном месте.

А композер немножко сложнее, конечно. Он еще умеет сам скачивать нужные классы из интернета, следить не вышла ли новая версия, и всякое такое. Но тоже не rocket science, и его стоит освоить.

php html to xls. Смотреть фото php html to xls. Смотреть картинку php html to xls. Картинка про php html to xls. Фото php html to xls

php html to xls. Смотреть фото php html to xls. Смотреть картинку php html to xls. Картинка про php html to xls. Фото php html to xls

Источник

Быстро и «грязно»: excel to html

Не уверен, что об этом писали здесь и считаю своим долгом поделиться этим хаком.

Иногда приходит менеджер и говорит: — Хочу эту таблицу видеть на сайте.
И уходит.
Вырисовывается два стандартных пути:
— либо через некую админку в редакторе ваять таблицу и заполнять ее значениями;
— либо ручками сразу в html и также наполнять значениями.
И ладно, если там 3х5 ячеек, а если больше.

Столкнувшись с подобным несколько лет назад я открыл для себя метод, базирующийся на использовании Windows Live Writer (софт написания и отправки постов в некоторые блоггерские платформы).

Все просто. Скопированную таблицу вставляем в WLW специальной вставкой с сохранением формата

php html to xls. Смотреть фото php html to xls. Смотреть картинку php html to xls. Картинка про php html to xls. Фото php html to xls

затем переходим на нижнюю вкладку «Source» в WLW и копируем из поля весь огромный код

php html to xls. Смотреть фото php html to xls. Смотреть картинку php html to xls. Картинка про php html to xls. Фото php html to xls

Получается так или почти так, как в оригинале. Времени занимает секунды, если не считать одноразовых затрат на прикрепление WLW к какой-нибудь блого-учетке.
Пример тут codepen

раз уж карма и рейтинг упали, допишу тут для всех, кто предлагает всевозможный save as из excel.

1. сохранить как «Веб страница в одном файле». Вариант «… веб страница» рассматривать не буду, т.к. он создает папку с четырьмя файлами.

В итоге получаем единую страницу с текстом на 320 строк.

php html to xls. Смотреть фото php html to xls. Смотреть картинку php html to xls. Картинка про php html to xls. Фото php html to xls

там еще надо найти необходимое для использования…

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *