"С миру по нитке..." Форум

"С миру по нитке..." Форум (http://forum.vika-plus.ru/index.php)
-   Копилка опыта (http://forum.vika-plus.ru/forumdisplay.php?f=24)
-   -   PHP: Как создать xls-файл средствами PHP (http://forum.vika-plus.ru/showthread.php?t=1162)

alagor 12.01.2016 12:50

PHP: Как создать xls-файл средствами PHP
 
PHP: Как создать xls-файл средствами PHP

В процессе написания парсинга столкнулся с задачей занести результат отработки скрипта PHP в файл xls. Поиски в интернете как правило перенаправлял на платные ресурсы... Но мне повезло, нашел интересное и простое решение:
PHP код:

function xlsBOF() {
echo 
pack(«ssssss»0x8090x80x00x100x00x0); 
return;
}
 
function 
xlsEOF() {
echo 
pack(«ss»0x0A0x00);
return;
}
 
function 
xlsWriteNumber($Row$Col$Value) {
echo 
pack(«abc»0x20314$Row$Col0x0);
echo 
pack(«d»$Value);
return;
}
 
function 
xlsWriteLabel($Row$Col$Value ) {
$L strlen($Value);
echo 
pack(«abc»0x204$L$Row$Col0x0$L);
echo 
$Value;
return;


C помощью этих функций можно легко и просто создавать xls-файлы, например так:

Код:

header(«Content-Type: application/force-download»);
header(«Content-Type: application/octet-stream»);
header(«Content-Type: application/download»);;
header(«Content-Disposition: attachment;filename=test.xls»);
header(«Content-Transfer-Encoding: binary „);
 
xlsBOF(); //начинаем собирать файл
/*первая строка*/
xlsWriteLabel(1,0,“Наименование»);
/*вторая строка*/
xlsWriteLabel(2,0,"№");
xlsWriteLabel(2,1,«Name»);
xlsWriteLabel(2,2,«FerstName»);
/*третья строка*/
xlsWriteNumber(3,0,«1»);
xlsWriteLabel(3,1,«Васечка»);
xlsWriteLabel(3,2,«Васечкин»);
/*...*/
xlsWriteNumber(32,0,«30»);
xlsWriteLabel(32,1,«Петр»);
xlsWriteLabel(32,2,«Петровский»);
 
xlsEOF(); //заканчиваем собирать

]

В итоге получаем простой xls-файл с именем test.xls.


Часовой пояс GMT +5, время: 14:24.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot