admin / 02.05.2018

php — Экспорт данных из php в excel — Qaru

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

Для того что бы сформировать файлы Excel мне понравилось работать с библиотекой PHPExcel. PHPExcel – набор классов PHP, который позволяет записывать различные форматы таблиц и управлять ими, а также считывать данные из файла.

В примере показано как записать массив данных в файл для скачивания:

Скачиваем и распаковываем последнею версию библиотеки с сайта phpexcel.codeplex.com ( или PHPExcel 1.8.0 )

# подключаем библиотеку require_once «$_SERVER[DOCUMENT_ROOT]/xls/PHPExcel.php»; # Массив с данными $res = array( ‘0’ => array( ‘data’ => ‘20.11.2003’, ‘name’ => ‘Иванов П.С’, ‘mail’ => ‘ivano@exemle.com’ ), ‘1’ => array( ‘data’ => ‘20.13.2005’, ‘name’ => ‘Сидоров П.А’, ‘mail’ => ‘sidorov@exemle.com’ ), ‘2’ => array( ‘data’ => ‘23.11.2008’, ‘name’ => ‘Петров П.С’, ‘mail’ => ‘petrov@exemle.com’ ) ); $objPHPExcel = new PHPExcel(); $objPHPExcel->getProperties()->setCreator(«Maarten Balliauw») ->setLastModifiedBy(«Maarten Balliauw») ->setTitle(«Office 2007 XLSX Test Document») ->setSubject(«Office 2007 XLSX Test Document») ->setDescription(«Test document for Office 2007 XLSX, generated using PHP classes.») ->setKeywords(«office 2007 openxml php») ->setCategory(«Test result file»); $i = null; foreach($res as $val) { $i++; $objPHPExcel->setActiveSheetIndex(0)->setCellValue(«A$i», $val[data]); $objPHPExcel->setActiveSheetIndex(0)->setCellValue(«B$i», $val[name]); $objPHPExcel->setActiveSheetIndex(0)->setCellValue(«C$i», $val[mail]); } $objPHPExcel->setActiveSheetIndex(0); header(‘Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet’); header(‘Content-Disposition: attachment;filename=»stat.xlsx»‘); header(‘Cache-Control: max-age=0’); header(‘Cache-Control: max-age=1’) header (‘Expires: Mon, 26 Jul 1997 05:00:00 GMT’); // Date in the past header (‘Last-Modified: ‘.gmdate(‘D, d M Y H:i:s’).’ GMT’); // always modified header (‘Cache-Control: cache, must-revalidate’); // HTTP/1.1 header (‘Pragma: public’); // HTTP/1.0 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, ‘Excel2007’); $objWriter->save(‘php://output’);

Загрузка-выгрузка в формате excel из PHP

Microsoft Excel по-прежнему наиболее широко используется как инструмент для анализа данных и создании различных отчетов.

Если вы когда-либо разрабатывали какое-либо корпоративное приложение, то среди требований, предъявляемых к нему, обязательно присутствовало требование организовать экспорт в формате Microsoft Excel.

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

PHPExcel

Страница библиотеки на GitHub

  • В этой библиотеке доступно самое большое количество опции, она активно поддерживается сообществом разработчиков.
  • Присутствует поддержка изображений, диаграмм, формул и многостраничных документов.
  • Библиотека может быть расширена: вы можете путем добавления кода для генерации документов различных форматов, которые вам необходимы. Есть поддержка PDF и DOC файлов.
  • Библиотека имеет подробную документацию, которую в силе понять даже начинающий PHP-разработчик.
  • Возможно загружать существующие Excel файлы, для использования их в качестве шаблона для заполнения данными.
  • Есть поддержка формата openXML, который используется в приложении Open Office и MS Office 2007 и более новых версиях.

php-excel

Страница библиотеки на Google Code

  • Небольшая библиотека с минимальной функциональностью, необходимой для экспорта данных в простой файл Excel
  • Отлично подойдет для экспорта данных в простой одностраничный файл Excel
  • При открытии полученного файла в MS Excel 2007 или более новой версии, будет показано предупреждение, что файл находится в ненадлежащем формате.
  • Вывод осуществляется только в браузер.
  • Изображения, диаграммы и формулы не поддерживаются.

Php export data

Страница библиотеки на GitHub

  • Библиотека создана на основе php-excel, описанной выше
  • Кроме формата xls поддерживает экспорт в форматы tsv и csv
  • Поддержка вывода в браузер или файл

Excel Writer(XML) for PHP

Страница библиотеки на Sourceforge

  • Поддержка формул Excel
  • Создание многостраничных файлов
  • Поддержка форматирования
  • Поддержка экспорта данных прямо из таблиц базы данных MySQL
  • Библиотека создает файлы в формате XML MS Office 2003, которые могут свободно открыты в Microsoft Excel (правда расширение файла может ввести пользователя в заблуждение).

Использовали ли Вы какую-либо из представленных библиотек (а может быть какую-нибудь другую) для экспорта данных в формате Excel в вашем PHP-приложении? Если да, то поделитесь своими впечатлениями в комментариях.

Оригинал статьи — http://webdeveloperplus.com/php/5-libraries-to-generate-excel-reports-in-php/

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

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

Как сделать экспорт большой таблицы в Excel средствами PHP?

И вот как генерировать XLS на PHP, я расскажу в этой статье.

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

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

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

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

  • Создано 02.03.2012 16:44:32

  • Михаил Русаков

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

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

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

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

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

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

  1. Кнопка:

    Она выглядит вот так:

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):
Статьи / PHP /

Как экспортировать данные из PHP в Excel файл?

Возможно Вы создаёте приложение для офиса или компании, а, возможно, и крупный сервис.

Для этого, например, Вам понадобится выгрузка/экспорт данных в файл Excel. Не важно что это — отчётность, прайс-лист или обычный список со склада — теперь пользователь может скачать удобный ему файл!

Чтобы сгенерировать файл xls или xlsx, нам потребуется с Вами отдельная библиотека, которая позволяет работать с Excel-файлами.

Как экспортировать данные из PHP в Excel файл?

Библиотека PHPExcel, скачать её можно с http://phpexcel.codeplex.com.
Ниже пример генерации Excel-файла через PHP-скрипт.

Код PHP

<?php
  require_once ‘phpexcel/PHPExcel.php’; // Подключаем библиотеку PHPExcel
  $phpexcel = new PHPExcel(); // Создаём объект PHPExcel
  /* Каждый раз делаем активной 1-ю страницу и получаем её, потом записываем в неё данные */
  $page = $phpexcel->setActiveSheetIndex(0); // Делаем активной первую страницу и получаем её
  $page->setCellValue("A1", "Hello"); // Добавляем в ячейку A1 слово "Hello"
  $page->setCellValue("A2", "World!"); // Добавляем в ячейку A2 слово "World!"
  $page->setCellValue("B1", "tradebenefit.ru"); // Добавляем в ячейку B1 слово "tradebenefit.ru"  
  $page->setCellValue("B2", "MyFirstPage"); // А в ячейку B2 слова "MyFirstPage"
  $page->setTitle("Example"); // Заголовок делаем "Example"
  /* Начинаем готовиться к записи информации в xlsx-файл */
  $objWriter = PHPExcel_IOFactory::createWriter($phpexcel, ‘Excel2007’);
  /* Записываем в файл */
  $objWriter->save("example.xlsx");
?>
По результатам работы скрипта в той же директории, что и php-файл, появится наш example.xlsx . Файл с данным расширением соответственно можно открыть в Excel 2007 и поздних версиях.

Библиотека даёт большой спектр возможностей, о которых уже можно узнать из документации.

Расширенный пример с сайта: пример кода PHP

Спасибо за внимание! Стараемся шагать в ногу со временем!)

 

Предыдущая статья
Популярные примеры работы регулярных выражений в PHPСледующая статья
Как создать или извлечь данные из ZIP-архива через PHP?

Похожие статьи

Комментарии к статье (vk.com)

FILED UNDER : IT

Submit a Comment

Must be required * marked fields.

:*
:*