admin / 02.05.2018
Иногда в некоторых проектах появляется необходимость генерации отчетов в 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’);
Содержание
Microsoft Excel по-прежнему наиболее широко используется как инструмент для анализа данных и создании различных отчетов.
Если вы когда-либо разрабатывали какое-либо корпоративное приложение, то среди требований, предъявляемых к нему, обязательно присутствовало требование организовать экспорт в формате Microsoft Excel.
В этой статье мы рассмотрим различные варианты организации экспорта данных в таблицы Excel, доступные для PHP-разработчика.
Страница библиотеки на GitHub
Страница библиотеки на Google Code
Страница библиотеки на GitHub
Страница библиотеки на Sourceforge
Использовали ли Вы какую-либо из представленных библиотек (а может быть какую-нибудь другую) для экспорта данных в формате Excel в вашем PHP-приложении? Если да, то поделитесь своими впечатлениями в комментариях.
Оригинал статьи — http://webdeveloperplus.com/php/5-libraries-to-generate-excel-reports-in-php/
Очень часто необходимо делать экспорт каких-то данных, например, из базы данных в Excel-файл. Например, какой-нибудь прайс-лист преобразовать в удобный формат из базы данных и сгенерировать XLS-файл, который смогут без проблем скачать посетители.
И вот как генерировать 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.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Она выглядит вот так:
Она выглядит вот так: Как создать свой сайт
Для этого, например, Вам понадобится выгрузка/экспорт данных в файл Excel. Не важно что это — отчётность, прайс-лист или обычный список со склада — теперь пользователь может скачать удобный ему файл!
Чтобы сгенерировать файл xls или xlsx, нам потребуется с Вами отдельная библиотека, которая позволяет работать с 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?
FILED UNDER : IT