Генериране на Excel файлове на кирилица чрез пакета Spreadsheet_Excel_Writer на PEAR

Ето как се генерират Excel файлове чрез Spreadsheet_Excel_Writer Pear пакета на PHP.

Инсталация

За да можем изобщо да използваме пакета, трябва да го има инсталиран. Това става със следната команда на pear:

pear install Spreadsheet_Excel_Writer

Тъй като пакета използва пакета OLE, може да се наложи да се инсталира и той:

pear install OLE

Цялата операция може да се постигне със следните команди:

pear channel-update pear.php.net
pear install -o OLE-0.5
pear install -o Spreadsheet_Excel_Writer-0.9.1

Генериране на файл

По този начин се генерира файл на уеб сървъра. myfile.xls е името на файла (евентуално с пътя). В него има една страница със списък на ученици. Функцията write() приема първи 2 параметъра - координати на клетка, и трети - стойността, която да запише там.

<?php
require_once 'Spreadsheet/Excel/Writer.php';

// Създаване на workbook
$workbook = new Spreadsheet_Excel_Writer('myfile.xls');

// Добавяне на страница
$worksheet =& $workbook->addWorksheet('students');

// Вкарване на данни
$worksheet->write(0, 0, 'Name');
$worksheet->write(0, 1, 'Grade');
$worksheet->write(1, 0, 'Ivancho');
$worksheet->write(1, 1, 7);
$worksheet->write(2, 0, 'Mariika');
$worksheet->write(2, 1, 7);
$worksheet->write(3, 0, 'Stoyancho');
$worksheet->write(3, 1, 8);

// Записване
$workbook->close();
?>

Изпращане на браузъра

В по-голямата част от случаите, в които се употребява това е да се направи експорт на някакви данни. След това файлът се изпраща на браузъра. Тук се използва функцията send(), и не се подава име на файла в конструктора на класа:

<?php
require_once 'Spreadsheet/Excel/Writer.php';

// Създаване на workbook
$workbook = new Spreadsheet_Excel_Writer();

// Изпращане на необходимите хедъри на браузъра
$workbook->send('students.xls');

// Добавяне на страница
$worksheet =& $workbook->addWorksheet('students');

// Вкарване на данни
$worksheet->write(0, 0, 'Name');
$worksheet->write(0, 1, 'Grade');
$worksheet->write(1, 0, 'Ivancho');
$worksheet->write(1, 1, 7);
$worksheet->write(2, 0, 'Mariika');
$worksheet->write(2, 1, 7);
$worksheet->write(3, 0, 'Stoyancho');
$worksheet->write(3, 1, 8);

// Изпращане на документа
$workbook->close();
?>

Ами кирилицата?

Ако пробвате да генерирате файл с кирилица сигурно няма да сте очаровани от резултата. Това е така, защото тук не сме указали нищо за charset-а. Ще добавим няколко реда, за да накараме документа да се генерира в UTF8. Принципно в документацията на пакета е указано, че генерира документи версия Excel 5 (BIFF5), но няма проблеми да му укажем и версия 8 (която поддържа UTF8).

<?php
require_once 'Spreadsheet/Excel/Writer.php';

// Създаване на workbook
$workbook = new Spreadsheet_Excel_Writer();
// Указваме версия 8
$workbook->setVersion(8);
// Изпращане на необходимите хедъри на браузъра
$workbook->send('students.xls');

// Добавяне на страница
$worksheet =& $workbook->addWorksheet('students');
// Указвaне на UTF-8
$worksheet->setInputEncoding('UTF-8');

// Вкарване на данни
$worksheet->write(0, 0, 'Име');
$worksheet->write(0, 1, 'Клас');
$worksheet->write(1, 0, 'Иванчо');
$worksheet->write(1, 1, 7);
$worksheet->write(2, 0, 'Марийка');
$worksheet->write(2, 1, 7);
$worksheet->write(3, 0, 'Стоянчо');
$worksheet->write(3, 1, 8);

// Изпращане на документа
$workbook->close();
?>


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

Коментари:

mmartinov.com (29-09-2008 16:19) :
Ах, това setVersion(8) от кога го търся... :-)

Обратно към списъка със статиите

Тази страница последно е променяна на 2024-04-29 02:48:37