Генерация XLS на PHP
Очень часто необходимо делать экспорт каких-то данных, например, из базы данных в Excel-файл. Например, какой-нибудь прайс-лист преобразовать в удобный формат из базы данных и сгенерировать XLS-файл, который смогут без проблем скачать посетители. И вот как генерировать XLS на PHP, я расскажу в этой статье.
Нам потребуется с Вами отдельная библиотека, которая позволяет работать с Excel-файлами. Называется она PHPExcel, и скачать её можно здесь: http://phpexcel.codeplex.com.
Давайте её применим для генерация Excel-файла через 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", "MyRusakov.ru"); // Добавляем в ячейку B1 слово "MyRusakov.ru"
$page->setTitle("Test"); // Ставим заголовок "Test" на странице
/* Начинаем готовиться к записи информации в xlsx-файл */
$objWriter = PHPExcel_IOFactory::createWriter($phpexcel, 'Excel2007');
/* Записываем в файл */
$objWriter->save("test.xlsx");
?>
После выполнения скрипта у Вас рядом с PHP-файлом появится XLSX-файл, который Вы легко сможете открыть в Excel 2007 или более поздней версии.
Вообще, библиотека достаточно большая и там есть очень много возможностей. Но представленных в данной статье уже более, чем достаточно для большинства случаев.
-
- Михаил Русаков
Комментарии (12):
А можно с помощью этой библиотеки дополнить уже существующий XLS файл?
Ответить
Да, можно.
Ответить
Спасибо. Но есть вопрос. Как скажем организовать, чтобы файл не записывался, а выдавался на скачивание? Понимаю, что вопрос странный, но опыта в php мало.
Ответить
В таких случаях генерируют файл, затем дают на него ссылку. А раз в сутки запускается скрипт и удаляет все эти файлы. Так будет сделать правильно.
Ответить
По поводу подключения к joomla. Похоже сперва надо сделать изменения, указанные в данной ссылке: http://klevismiho.com/phpexcel-and-joomla/ После этого работает стабильно.
Ответить
У Вас опечатка // Добавляем в ячейку A2 слово "World1" Заместо знака восклицания, у Вас стоит "1"
Ответить
Спасибо, исправил!
Ответить
Добрый вечер, скажите, а куда класть данную библиотеку? а то пример копирую, он не работает
Ответить
require_once 'phpexcel/PHPExcel.php'; - здесь указан путь.
Ответить
выполняю скрипт,но файл не появляется
Ответить
Михаил, а можно более подробно изложить использование данной библиотеки для простого примера: на страницу выводится html-таблица и значок(типа "сгенерировать таблицу") в углу. И только после клика по этому значку генерируется excel-файл с сохранением всех стилей (ну или большей их части по возможности). на сайте разработчика не понятно описано все. заранее спасибо!
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.