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; 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.".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; 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);

原博地址-Krasimir

发表评论

电子邮件地址不会被公开。 必填项已用*标注