Из PHP в Excel: работа с COM-объектами : Формат ячеек: Шрифт
Общие возможности:
В Excel при помощи PHP с текстом, записанным в ячейках, можно сделать следующее:Форматирование текста:
Методика обращения к свойствам текста следующая:
<?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; // Размер шрифта
?>
Задание цвета текста:
Цвет текста задается при помощи свойства ColorIndex() все того же объекта Font().
<?php
$xls = new COM("Excel.Application"); // Создаем новый COM-объект
$xls->Application->Visible = 1; // Заставляем его отобразиться
$xls->Workbooks->Add(); // Добавляем новый документ
$range = $xls->Range("A1");
$range->Value = "Текст будет написан красным";
$range->Font->ColorIndex = 3;
?>
Есть одна особенность: цвет текста задается не в каком-либо формате (RGB, CMYK и т.д.), а номером, под которым он находится в палитре Excel-а.Всего в палитре присутствует 55 цветов и одно значение отводиться под автоцвет. Итого при помощи свойства ColorIndex() можно задать 56 значений цвета.
Следующий пример выведет в документе Excel все возможные значения свойства ColorIndex():
<?php
$xls = new COM("Excel.Application"); // Создаем новый COM-объект
$xls->Application->Visible = 1; // Заставляем его отобразиться
$xls->Workbooks->Add(); // Добавляем новый документ
$min_color_index=0; // Начальный индекс цвета
$max_color_index=55; // Конечный индекс цвета
$start_position=2; // Номер позиции, с которой начнется показ
// индексов цвета
// Выводим надпись "Номер цвета"
$range = $xls->Range("A1:B1");
$range->Font->Bold = true;
$range = $xls->Range("A1");
$range->Value = "Номера цветов";
// Выводим значения индексов цвета и окрашиваем эти значения
// соответствующим цветом
for($i=$min_color_index;$i<=$max_color_index;$i++) {
$range = $xls->Range("A".($i+$start_position));
$range->Value = "ColorIndex = ".$i;
$range->Font->ColorIndex = $i;
};
?>