PHP: Как создать xls-файл средствами PHP
PHP: Как создать xls-файл средствами PHP
В процессе написания парсинга столкнулся с задачей занести результат отработки скрипта PHP в файл xls. Поиски в интернете как правило перенаправлял на платные ресурсы... Но мне повезло, нашел интересное и простое решение:
PHP код:
function xlsBOF() { echo pack(«ssssss», 0x809, 0x8, 0x0, 0x10, 0x0, 0x0); return; } function xlsEOF() { echo pack(«ss», 0x0A, 0x00); return; } function xlsWriteNumber($Row, $Col, $Value) { echo pack(«abc», 0x203, 14, $Row, $Col, 0x0); echo pack(«d», $Value); return; } function xlsWriteLabel($Row, $Col, $Value ) { $L = strlen($Value); echo pack(«abc», 0x204, 8 + $L, $Row, $Col, 0x0, $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.
|