Создание новых файлов и выгрузки данных для программирования задача очень частая. Ранее уже рассматривались вопросы создания и записи данных в файл в PHP. Сегодня же рассмотрим создание файла Excel и выгрузка в него данных. Сфера применения такого подхода очень большая: от выгрузки прайс-листов до формирования сложных отчетов (для печати или отправки кому-либо).
Самым простым решением в таком случае, было бы формирование файла в формате SCV. MS Excel без особых сложностей сможет открыть такой файл и далее с этими данными можно работать привычными способами. Проблема только в том, что такой подход пригоден в основном для списочных или табличных форм данных. Если же мы имеем материал на вывод более сложный, возникнут сложности.
Для того, чтобы сформировать полноценный документ Excel со всеми возможностями оформления, удобнее будет воспользоваться библиотекой PHPExcel. Она включает в себя весь необходимый функционал по работе с файлами Excel. С ее помощью можно не только внести значения в нужные ячейки, но и объединять и применять отдельные стили оформления к каждой ячейке.
Скачать библиотеку можно здесь.
Далее разберем пример подключения и использования библиотеки PHPExcel.
// Подключение класса для работы с Excel
require_once("PHPExcel.php");
// Подключение класса для вывода данных в формате Excel
require_once("PHPExcel/Writer/Excel5.php");
// Создание объекта класса PHPExcel
$myXls = new PHPExcel();
// Указание на активный лист
$myXls->setActiveSheetIndex(0);
// Получение активного листа
$mySheet = $myXls->getActiveSheet();
// Указание названия листа книги
$mySheet->setTitle("Новый лист");
// Указываем значения для отдельных ячеек
$mySheet->setCellValue("A1", "1-я строка");
$mySheet->setCellValue("A2", "2-я строка");
$mySheet->setCellValue("A3", "3-я строка");
$mySheet->setCellValue("B1", "2-й столбец");
// HTTP-заголовки
header ("Expires: Mon, 1 Apr 1974 05:00:00 GMT");
header ("Last-Modified: " . gmdate("D,d M Y H:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
header ("Content-type: application/vnd.ms-excel");
header ("Content-Disposition: attachment; filename=myFile.xls");
// Вывод файла
$objWriter = new PHPExcel_Writer_Excel5($myXls);
$objWriter->save("php://output");
// Выделить жерным
$mySheet ->getStyle("A1")->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
// Выделение цветом
$mySheet ->getStyle("A1")->getFill()->getStartColor()->setRGB("FF0000");
// Положение текста по центру
$sheet->getStyle("A1")->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
// Назначение ширины столбцов
$mySheet ->getColumnDimension("A")->setWidth(50);
// Назначение высоты строк
$mySheet ->getRowDimension(1)->setRowHeight(16);
// Автоматическое назначение ширины столбца
$mySheet ->getColumnDimension("A")->setAutoSize(true);
Функция isset в PHP, описание и примеры
Функция fwrite в PHP, описание и примеры
Копирование, переименование и перемещение файлов в PHP
BlogChik
- 15 июня 2021, 09:01 ↓