Home >Backend Development >PHP Tutorial >使用phpexcel导出excel乱码,该如何处理
使用phpexcel导出excel乱码
数据库和页面都是utf8。
header('Content-Type: application/vnd.ms-excel;');
header('Content-Disposition: attachment;filename='.$filename.'.xls');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output'); //
导出后,打开execel是乱码的。
本地window下导出的话没问题,上传到服务器上导出,就是乱码。
直接var_dump($objWreter)到页面,发现不会乱码。
header('Content-Type: application/vnd.ms-excel;charset=gb2312')也还是乱码;
这个乱码是什么问题
------解决方案--------------------
在header() 前面加上ob_end_clean() 函数, 清除缓冲区, 这样就不会乱码了!
ob_end_clean();//清除缓冲区,避免乱码
header('Content-Type: application/vnd.ms-excel');
.....
.....
------解决方案--------------------
$objWriter->save('php://output'); 输出的是二进制文档流,就和图片一样不存在字符集的问题
用 excel 打开是出现乱码,是因为文件中含有不能被他识别的内容
这多半是包含了 php 的错误信息
你可以截个图贴上来看看,也可以以把 xls 文件放到网盘上