Из 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; }; ?>