Хорошим бонусом вашего сайта может быть выгрузка информации в exel, например, автоматически генерируемый прайс продукции или результат расчётов, выгруженный в смету. Если полноценный Exel документ не нужен, можно воспользоваться трюком с изменением расширения (.html на .xls). Но если перед Вами стоит более сложная задача, например, внедрить поддержку формул, нужно использовать более сложные решения.
В разработке я использовала набор классов php_writeexcel. Некоторые функции пришлось менять, т.к с приходом php5 подходы используемые в коде устарели.
Создание нового листа таблицы:
$worksheet = $workbook->addworksheet('name_list');
Вставка изображения:
$worksheet->insert_bitmap('A1', 'logo.bmp', 1, 1, 1, 0.5);
Вставка текста (в качестве текста может выступать формула exel):
$worksheet->write(5, 0, '№', $header);
$worksheet->write(6, 3, '=D9*D10*D11*D12*D13');
$worksheet->write(7, 5, '=SUM(F1:F12)', $f_num);
Текст можно вставить из массива:
$headings = array('текст1', 'текст2', 'текст3', 'текст4');
$worksheet->write_row('A5', $heading);
Работа со стилями колонок:
$worksheet->set_column(0, 0, 20);
$worksheet->set_column(1, 1, 60);
Работа со стилями ячеек:
$val_name = $workbook->addformat();
Стили можно передать массивом методу, или вызывать каждый отдельно
$heading = $workbook->addformat(array(
bold => 1,
color => 'red',
size => 16,
merge => 1,
));
Цвета и рамки:
$border->set_color('white');
$border->set_color(8); // так же установит белый
$border->set_fg_color('grey');
$border->set_border_color('red');
// В качестве цвета можно использовать символьный код или число от 8 до 63 (см тб. ниже)
$border->set_border(1);
// Числовое значение соответствует типу и толщине линии
Типы рамок:
1 | Continuous (Сплошная) | _____ |
2 | Continuous (Сплошная) | _____ |
3 | Dash(Пунктирная) | —— |
4 | Dot(Точки) | ….. |
6 | Double(Двойная) | =========== |
Цветовая палитра используемая в документе:
цветовая палитра
Шрифт и начертание:
$header->set_bold();
$header->set_italic();
$header->set_underline();
$header->set_font('Arial');
$header->set_size('10');
Отступы:
Выравнивание и перенос по словам(vjustify):
$border->set_align('center');
$border->set_align('vcenter');
$border->set_merge();
$border->set_align('vjustify');
Формат отображения цифр:
$f_num->set_num_format('#,#0');
Стили устанавливаются отдельно для каждой ячейки с помощью третьего параметра:
$worksheet->write(1, 0, '№', $heading);
$worksheet->write(3, 4, $price, $f_num);
Один ответ к “Создание exel средствами php (php_writeexcel)”
Анастасия, выложите пожалуйста этот класс под php5. 🙂