- Формирование Excel-документов средствами PHP
- Введение
- Синтаксис
- Заключение
- How to Create And Update Excel Files in PHP
- PHP Library to Create Excel Files — Free Download#
- Usage#
- Easy Steps to Create Excel File in PHP#
- Modify an Excel File in PHP#
- PHP: Create Excel File with Charts#
- Add a Pivot Table in an Excel File in PHP#
- Create Excel Files Online#
- Free PHP Library to Create Excel Files #
- Conclusion#
- See Also#
Формирование Excel-документов средствами PHP
Возможность создания Excel-документов в общих чертах уже была описана на Хабре, но полной информации из этих статей мне получить не удалось. Пришлось заняться собственными изысканиями, результатами которых я хотел бы с Вами поделиться. Данная статья будет полезна и новичкам, и профессионалам, столкнувшимся с проблемой динамического формирования Excel-документов.
Это всего лишь первая часть серии статей, которыми хотелось бы поделиться с общественностью. В последующих статьях будут более подробно рассмотрены некоторые способы и нюансы выгрузки xls-файлов.
Введение
Не хочу распространяться на тему того, зачем необходима выгрузка в Excel. Мне кажется, что это вполне очевидно: в формате MS Excel достаточно удобно предоставлять пользователю загружаемые данные. Это могут быть прайс-листы, каталоги или любая подобная служебная, статистическая и иного рода информация.
Сразу хочу оговориться, что в статье рассматривается работа с документами через COM-объекты. Данный метод таботает только на Windows-платформах. Другими словами, если Вы предпочитаете *nix-хостинг, этот метод Вам не подходит.
Синтаксис
Создание COM-объекта осуществляется следующим образом:
$my_com_object = new COM($object_class);
, где
$my_com_object — новый COM-объект;
$object_class — id-класс требуемого объекта.
Для создания Excel-документов переменной $object_class необходимо задать значение «Excel.Application» либо «Excel.sheet».
$xls = new COM(«Excel.Application»);
После создания нового COM-объекта, можно обращаться к его свойствам и методам:
$xls = new COM(«Excel.Application»); // Создание объекта
$xls->Application->Visible = 1; // Делаем объект видимым
$xls->Workbooks->Add(); // Добавляем новую книгу (создаём документ)
$rangeValue = $xls->Range(«A1»);
$rangeValue->Value = «Декорация текста: жирный, подчеркнутый, наклонный»;
$rangeValue = $xls->Range(«A2»);
$rangeValue->Value = «Размер шрифта: 14»;
$rangeValue = $xls->Range(«A3»);
$rangeValue->Value = «Тип шрифта: Arial»;
$range=$xls->Range(«A1:J10»); // Указываем область ячеек
$range->Select(); // Выделяем эту область
$fontRange=$xls->Selection(); // Присваиваем переменной выделенную область
// Отформатируем текст в выделенной области
$fontRange->Font->Bold = true; // Жирный
$fontRange->Font->Italic = true; // Курсив
$fontRange->Font->Underline = true; // Подчеркнутый
$fontRange->Font->Name = «Arial»; // Тип шрифта
$fontRange->Font->Size = 14; // Размер шрифта
?>
Открытие, запись, закрытие документа
Общие возможности
- создать новый документ
- открыть ранее созданный документ
- сохранить открытый документ
- закрыть документ
Создание нового документа
- создаем «связь» между PHP и Excel (создается дескриптор, как при работе с файлами)
- указываем, будет ли визуально открыта программа или нет
- указываем программе через дескриптор, что нужно открыть новый документ
Открытие ранее созданного документа
Открытие документа можно сделать при помощи метода Open() объекта Workbooks().
В передаваемом методу Open() параметре нужно указать имя открываемого файла:
$xls = new COM(«Excel.Application»); // Создаем новый COM-объект
$xls->Application->Visible = 1; // Делаем его видимым
$xls->Workbooks->Open(«C:\my_doc.xls»); // Открываем ранее сохраненный документ
?>
Внимание! Если указать не полный, а относительный путь, то поиск открываемого файла будет происходить не на сервере, а на компьютере пользователя. По умолчанию это папка «Мои документы».
Сохранение открытого документа
Сохранение открытого документа производится при помощи метода SaveAs() объекта Workbooks():
$xls = new COM(«Excel.Application»); // Создаем новый COM-объект
$xls->Application->Visible = 1; // Делаем его видимым
$xls->Workbooks->Add();
$range=$xls->Range(«A1»); // Выбираем ячейку A1
$range->Value = «Проба записи»; // Вставляем значение
// Сохраняем документ
$xls->Workbooks[1]->SaveAs(«my_doc.xls»);
$xls->Quit(); //Закрываем приложение
$xls->Release(); //Высвобождаем объекты
$xls = Null;
$range = Null;
?>
Хочу отдельно отметить, что высвобождение объектов — это очень хорошо и правильно. Да сгорят в священном очищающем пламени костров Инквизиции те, кто считает иначе.
Закрытие документа
Закрытие документа производится методом Quit().
$xls = new COM(«Excel.Application»); // Создаем новый COM-объект
$xls->Application->Visible = 1; // Делаем его видимым
$xls->Workbooks->Add();
$range=$xls->Range(«A1»); // Выбираем ячейку A1
$range->Value = «Что-то записываем»; // Вставляем значение в ячейку
// Сохраняем документ
$xls->Workbooks[1]->SaveAs(«my_doc.xls»);
$xls->Quit(); // Закрываем приложение
$xls->Release(); // Высвобождаем объекты
$xls = Null;
$range = Null;
?>
Заключение
Если статья оказалась Вам полезна и интересна, буду рад подготовить продолжение, где более подробно будут рассматриваться методы работы с листами документов, ячейками и границами.
Разумеется, если это кому-то интересно и необходимо для работы.
How to Create And Update Excel Files in PHP
Spreadsheets have become an essential part of keeping, organizing, and analyzing data. Since automated solutions are more in business these days, the trend of creating and manipulating Excel documents (XLS/XLSX) has emerged and growing at a huge pace. Following the above-mentioned scenario, this article covers how to create and modify Excel files in PHP.
PHP Library to Create Excel Files — Free Download#
To create and manipulate Excel files in PHP based web applications, we will use Aspose.Cells for PHP via Java. It is a powerful and high-speed library that provides a wide range of features for Excel automation. You can download the library package from here.
Usage#
The following are the prerequisites that you need to fulfill in order to use Aspose.Cells for PHP via Java.
Once you have completed the prerequisites, follow the below steps to execute the example.php file for testing.
- Place Java.inc file in the root folder of the library’s package that you have downloaded.
- Run JavaBridge.jar using the below commands in the command prompt:
Easy Steps to Create Excel File in PHP#
The following are some easy steps to create an Excel file in PHP.
- Create an object of Workbook class.
- Access the WorksheetCollection using $workbook->getWorksheets() method.
- Access Cells collection of the desired worksheet using $worksheets->get(index)->getCells() method.
- Insert value into the desired cell using $cells->get(“A1”)->putValue(“Hello world!”) method.
- Save the Excel workbook using $workbook->save(“output.xlsx”, cells\SaveFormat::XLSX) method.
The following code sample shows how to create an Excel XLSX file in PHP.
Modify an Excel File in PHP#
In the previous section, we created an Excel file from scratch. Now, let’s edit an existing Excel file and insert data into it.
The following are the steps to write data to an XLSX file using Aspose.Cells for PHP via Java.
- Create an object of Workbook class and initialize it with the path to the Excel file.
- Access the WorksheetCollection of the Excel file using $workbook->getWorksheets() method.
- Access Cells collection of the desired worksheet using $worksheets->get(index)->getCells() method.
- Insert value into the desired cell using $cells->get(“A1”)->putValue(“Hello world!”) method.
- Save the Excel workbook using $workbook->save(“output.xlsx”, cells\SaveFormat::XLSX) method.
The following code sample shows how to modify an Excel file in PHP.
PHP: Create Excel File with Charts#
The following are the steps to create charts in an Excel file using PHP.
- Create a new Excel file or load an existing one using the Workbook class.
- Add data to the worksheet if a new workbook is created.
- Get the chart collection of the worksheet using the $worksheet->getCharts() method.
- Add a new chart using $worksheet->getCharts()->add() method.
- Get the newly created Chart from the collection.
- Specify the cells’ range to set NSeries for the chart.
- Save the workbook as an Excel .xlsx file using $workbook->save(“output.xlsx”, cells\SaveFormat::XLSX) method.
The following code sample shows how to create charts in Excel files in PHP.
Add a Pivot Table in an Excel File in PHP#
Pivot tables in Excel worksheets are used for adding filters to the data, computing totals, summarizing data, etc. Pivot tables can be created using the range of the cells in the worksheet. The following are the steps to create a pivot table in an Excel worksheet using PHP.
- Create a new Excel file or load an existing one using the Workbook class.
- Insert data into the worksheet.
- Access the pivot table collection using $worksheet->getPivotTables() method.
- Add a new pivot table in the worksheet using $worksheet->getPivotTables()->add() method.
- Provide data to the pivot table.
- Save the workbook using $workbook->save(“output.xlsx”, cells\SaveFormat::XLSX) method.
The following code sample shows how to create a pivot table in Excel using PHP.
Create Excel Files Online#
We also provide an online Excel editor for you to create and edit Excel files. You can use this powerful spreadsheet editor without creating an account.
Free PHP Library to Create Excel Files #
You can create Excel files in PHP for free without evaluation limitations using a free temporary license.
Conclusion#
In this article, you have learned how to create Excel XLS or XLSX files from scratch in PHP. Furthermore, you have seen how to write data to an existing Excel file and generate Excel files with charts or tables in PHP. In addition, we have provided you with a free Excel editor that lets you create and edit Excel files online without creating an account.
You can explore more about the PHP Excel library using the documentation. In case you would have any questions, feel free to let us know via our forum.