PHP - генерация отчетов
Экспорт в MS Excel
В PHP существует несколько библиотек облегчающих генерацию отчетов в формат файла .xlsx (нового формата MS Excel начиная с версии 2007):
PHPExcel
Библиотека очень хорошо документирована, на сайте достаточное количество разнообразные примеров. Некоторые возможности библиотеки PHPExcel:
- Установка размеров ячеек
- Цвет текста
- Размеры текста
- Шрифты
- Заливка цветом области
- Рамки
- Работа с разными листами
- Вставка в ячейки формул
- Вставка в ячейки активных (кликабельных) ссылок
- Пример. Генерация документа с двумя листами, заполнение его содержимым. Созданный файл предлагается клиенту сохранить. После сохранения файл у пользователя, файл на сервере удаляется.
<?php error_reporting(E_ALL); include 'PHPExcel.php'; include 'PHPExcel/Writer/Excel2007.php'; // Create new PHPExcel object echo date('H:i:s') . " Create new PHPExcel object\n"; $objPHPExcel = new PHPExcel(); // Установить свойства документа. Видны в Office 2010 (в LibreOffice эти свойства не видны) $objPHPExcel->getProperties()->setCreator(""); // Автор $objPHPExcel->getProperties()->setLastModifiedBy(""); $objPHPExcel->getProperties()->setTitle("LCR"); // Название $objPHPExcel->getProperties()->setSubject("Office 2007"); // Тема $objPHPExcel->getProperties()->setDescription("LCR"); // Примечания // Add some data echo date('H:i:s') . " Add some data\n"; $objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->getActiveSheet()->SetCellValue('A1', 'Hello'); $objPHPExcel->getActiveSheet()->SetCellValue('B2', 'world!'); $objPHPExcel->getActiveSheet()->SetCellValue('C1', 'Hello'); $objPHPExcel->getActiveSheet()->SetCellValue('D2', 'world!'); // Rename sheet echo date('H:i:s') . " Rename sheet\n"; $objPHPExcel->getActiveSheet()->setTitle('LCR'); // Create a new worksheet, after the default sheet echo date('H:i:s') . " Create new Worksheet object\n"; $objPHPExcel->createSheet(); $objPHPExcel->setActiveSheetIndex(1); $objPHPExcel->getActiveSheet()->SetCellValue('A1', 'Code'); $objPHPExcel->getActiveSheet()->SetCellValue('B2', 'Destination!'); // Rename sheet echo date('H:i:s') . " Rename sheet\n"; $objPHPExcel->getActiveSheet()->setTitle('Code'); // Save Excel 2007 file $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); //$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); $objWriter->save('cdr.xlsx'); $file = "cdr.xlsx"; if (file_exists($file)) { // redirect output to client browser header('Content-Description: File Transfer'); header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment; filename='.basename($file)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); ob_clean(); flush(); readfile($file); unlink($file); // удаляем файл } ?>
📌 Для тестирования скриптов, установщиков VPN, Python ботов рекомендуем использовать надежные VPS на короткий срок. Если вам нужна помощь с более сложными задачами, вы можете найти фрилансера, который поможет с настройкой. Узнайте больше о быстрой аренде VPS для экспериментов и о фриланс-бирже для настройки VPS, WordPress. 📌
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Китайский VPN Shadowsocks простая установка и настройка
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах