失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > php 数据导出到excel文件 PHP导出数据到excel文件

php 数据导出到excel文件 PHP导出数据到excel文件

时间:2019-09-10 08:16:43

相关推荐

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文件》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。