О web-разработке
и даже немного больше...

PHPExcel: форматирование ячеек

phpexcel-stylingПрошло некоторое время с того момента как на нашем блоге появился пост про библиотеку PHPExcel. В качестве примера был указан код для генерации Excel файла. В указанном примере генерируется файл Office 2007, с расширением xlsx. На практике кроме элементарной вставки значений в ячейки так же возникает потребность всячески стилизовать таблицу в зависимости от поставленных задач. К счастью библиотека PHPExcel включает такую возможность, поэтому данный пост послужит дополнением к предыдущему посту по этой теме. Здесь мы рассмотрим некоторые возможности стилизации и форматирования ячеек.

Объект активной таблицы занесем в отдельную переменную, чтобы код выгладил менее громоздким.

$objActiveSheet = $objPHPExcel->setActiveSheetIndex(0);

Первым делом хотелось бы обратить внимание на размеры ширины столбцов ячеек, пожалуй, это первое что бросается на глаза, при генерации файла excel, особенно если длина значения значительно превосходит стандартные размеры ячейки.

Задаем ширину столбцов ячеек

$objActiveSheet->getColumnDimension('A')->setWidth(15);
$objActiveSheet->getColumnDimension('B')->setWidth(100);
$objActiveSheet->getColumnDimension('C')->setWidth(18);

Значения в некоторых ячейках могут отображаться в неправильном виде, возникает это, как правило, из-за неверного типа ячейки. К примеру, в ячейку A1 мы пытаемся записать некий код, который имеет вид, например 00047, после чего в результате в ячейке мы наблюдаем значение 47, и такое преобразование происходит со всем столбцом. Для более верного отображения значений этого столбца целесообразно использовать тип Строка.

Чтобы указать тип ячейки, можно вместо метода setCellValue(), воспользоваться методом setCellValueExplicit(). Значение параметров для этого метода передаются таким же образом, за исключением того, что в конце добавляется дополнительный параметр (нашем случае PHPExcel_Cell_DataType::TYPE_STRING), задающий тип ячейки.

Задаем значение и тип ячейки

$objActiveSheet->setCellValueExplicit('A1', 'Код',PHPExcel_Cell_DataType::TYPE_STRING);

Довольно часто требуется стилизовать некоторые ячейки, к примеру, задать шрифт, его размер, цвет и толщину. Посмотрим, как это можно сделать.

Стилизация ячейки

# массив с параметрами
$arHeadStyle = array(
    'font'  => array(
        'bold'  => true,
        'color' => array('rgb' => '778899'),
        'size'  => 13,
        'name'  => 'Verdana'
    ));

# применение стилей к ячейкам
$objActiveSheet->getStyle('A1')->applyFromArray($arHeadStyle);
$objActiveSheet->getStyle('B1')->applyFromArray($arHeadStyle);
$objActiveSheet->getStyle('C1')->applyFromArray($arHeadStyle);

Перенос скриптов на другой сервер может сопровождаться появлением некоторых ошибок, что приводит к неправильной работе сайта, либо неработоспособности вовсе. Если у вас возникли подобные проблемы, рекомендую статью к прочтению.

Опубликован: 10.06.2014 г.

См. также:

Редакторы кода для PHP
Как просмотреть время загрузки страницы в PHP?
Генерация QR-кода в PHP
Загрузка файлов на сервер посредством Ajax
Импорт записей из Excel в WordPress
Парсинг XML в PHP
Установка IonCube на XAMPP
Создание PDF файлов в PHP

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Комментарии
  • Загрузка...
Друзья сайта