php 数据导出到excel文件,PHP导出数据到excel文件
下面介紹一個很另類的php導出數據到xls文件的方法,用到的函數有pack,iconv
//上面三個自定義函數很重要,大家自行揣摩
function xlsBOF() {
echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);
}
function xlsEOF() {
echo pack("ss", 0x0A, 0x00);
}
function xlsWriteLabel($Row, $Col, $Value) {
$L = strlen($Value);
echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);
echo $Value;
}
//封裝的方法,要看原博,請點擊文章底部鏈接
function export(array $head, array $body)
{
// prepare headers information
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Disposition: attachment; filename=\"export_".date("Y-m-d").".xls\"");
header("Content-Transfer-Encoding: binary");
header("Pragma: no-cache");
header("Expires: 0");
xlsBOF();
//因為我們的內容一般會有中文,所以表頭和表內容都需要預先轉碼,不然會出現亂碼
//此處用的是逗號分隔,如果內容中含有逗號就會出問題,大家可以換成其他分隔符,或者采用for循環的方式逐行進行轉換
$head_str = iconv('utf-8', 'gbk', implode(',', $head));
$head_arr = explode(',', $head_str);
$head_count = count($head_arr);
for ($i = 0; $i < $head_count; $i++) {
xlsWriteLabel(0, $i, $head_arr[$i]);
}
//body
$body_count = count($body);
for ($i = 0; $i < $body_count; $i++) {
$value = $body[$i];
$value_str = iconv('utf-8', 'gbk',implode(',', $value));
$value_arr = explode(',', $value_str);
for ($j = 0; $j < $head_count; $j++) {
xlsWriteLabel($i + 1, $j, $value_arr[$j]);
}
}
xlsEOF();
}
//使用方法
$head = ['手機號', '姓名', '昵稱'];
$body = [
[
'1378949440',
'張三',
'張三三'
],
[
'1399494900',
'李四',
'李四四'
]
];
export($head, $body);
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的php 数据导出到excel文件,PHP导出数据到excel文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ajax jquery php_基于Aj
- 下一篇: php云点播源码,乐视云直播 点播服务端