使用PHP导出excel文档,有时候莫名其妙就会出现导出的数据乱码,现在推荐一个万能修补大法

话不多说,直接上代码

核心就是在处理完数据之后,输出excel文件之前 添加 ob_end_clean()函数;具体见示例代码,此处只罗列部分代码

 1  foreach ($licenseList as $key => $item) {
 2                     $objPHPExcel->setActiveSheetIndex(0)
 3                         ->setCellValue(\'A\' . ($key + 2), $item["company_name"])
 4                         ->setCellValue(\'B\' . ($key + 2), $item["user_name"])
 5                         ->setCellValue(\'C\' . ($key + 2), $item["order_number"])
 6                         ->setCellValue(\'D\' . ($key + 2), $item[\'apply_type\']==2 ? \'official\':\'trial\')
 7                         ->setCellValue(\'E\' . ($key + 2), $item["license_key"])
 8                         ->setCellValue(\'F\' . ($key + 2), $statusArr[$item[\'license_status\']])->setCellValue(\'G\' . ($key + 2), $item["user_email"])
 9                         ->setCellValue(\'H\' . ($key + 2), date(\'y/m/d H:i:s\', strtotime($item[\'insert_time\'])));
10                 }
11 
12                 $objPHPExcel->getActiveSheet()->setTitle(\'Simple\');
13                 $objPHPExcel->setActiveSheetIndex(0);
14                 ob_end_clean();//解决乱码核心 就在此处添加此函数
15                 header(\'Content-Type: application/vnd.ms-excel\');
16                 header(\'Content-Disposition: attachment;filename="test_list.xls"\');
17                 header(\'Cache-Control: max-age=0\');
18                 header(\'Cache-Control: max-age=1\');
19                 header(\'Expires: Mon, 26 Jul 1997 05:00:00 GMT\');
20                 header(\'Last-Modified: \' . gmdate(\'D, d M Y H:i:s\') . \' GMT\');
21                 header(\'Cache-Control: cache, must-revalidate\');
22                 header(\'Pragma: public\');
23 
24                 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, \'Excel5\');
25                 $objWriter->save(\'php://output\');
26                 exit;

如上红色标记代码所示,如果此方法还是不行,请尝试使用iconv()函数,具体使用此处不做详解,请自行百度

祝君好运!

版权声明:本文为guliang原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/guliang/p/11646458.html