Из PHP в Excel: работа с COM-объектами

We use cookies. Read the Privacy and Cookie Policy

Из PHP в Excel: работа с COM-объектами

Данная серия статей посвящена созданию документов Excel при помощи PHP. Данная возможнось может понадобиться, например, если нужно предоставить пользователю загружаемые данные в виде листов Excel. Это могут быть прайсы на продукцию, автоматически генерируемые из базы данных на сервере, либо какие-то документы, которые также необходимо представить в виде документов Excel.

Здесь рассматривается возможность работы с Excel-документами через COM-объект. К сожалению работа с COM-объектами в PHP возможна только на Windows-платформах. По-этому если Вы используете Unix-хостинг, то создавать и редактировать Excel-документы приведенным ниже способом не получится.

Работа с COM-объектами производится при помощи синтаксиса

$com_object = new COM($object);

где

Для создания Excel-документов переменной $object необходимо задать значение "Excel.Application" либо "Excel.sheet".

$xsl = new COM("Excel.Application");

После создания нового COM-объекта, можно обращаться к его свойствам и методам:

<?php

$xls = new COM("Excel.Application"); // Создаем новый COM-объект

$xls->Application->Visible = 1; // Заставляем его отобразиться

$xls->Workbooks->Add(); // Добавляем новый документ

$rangeValue = $xls->Range("A1");

$rangeValue->Value = "В выделенном блоке текст будет жирный, подчеркнутый, наклонный";

$rangeValue = $xls->Range("A2");

$rangeValue->Value = "Шрифт будет иметь высоту 12";

$rangeValue = $xls->Range("A3");

$rangeValue->Value = "Имя шрифта - Times New Roman";

$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 = "Times New Roman"; // Имя шрифта

$fontRange->Font->Size = 12; // Размер шрифта

?>