推荐:《php视频教程》
php导出excel乱码
使用php导出excel文档,有时候莫名其妙就会出现导出的数据乱码,现在推荐一个万能修补大法
话不多说,直接上代码
核心就是在处理完数据之后,输出excel文件之前 添加 ob_end_clean()函数;具体见示例代码,此处只罗列部分代码
foreach ($licenselist as $key => $item) { $objphpexcel->setactivesheetindex(0) ->setcellvalue('a' . ($key + 2), $item["company_name"]) ->setcellvalue('b' . ($key + 2), $item["user_name"]) ->setcellvalue('c' . ($key + 2), $item["order_number"]) ->setcellvalue('d' . ($key + 2), $item['apply_type']==2 ? 'official':'trial') ->setcellvalue('e' . ($key + 2), $item["license_key"]) ->setcellvalue('f' . ($key + 2), $statusarr[$item['license_status']])->setcellvalue('g' . ($key + 2), $item["user_email"]) ->setcellvalue('h' . ($key + 2), date('y/m/d h:i:s', strtotime($item['insert_time']))); } $objphpexcel->getactivesheet()->settitle('simple'); $objphpexcel->setactivesheetindex(0); ob_end_clean();//解决乱码核心 就在此处添加此函数 header('content-type: application/vnd.ms-excel'); header('content-disposition: attachment;filename="test_list.xls"'); header('cache-control: max-age=0'); header('cache-control: max-age=1'); header('expires: mon, 26 jul 1997 05:00:00 gmt'); header('last-modified: ' . gmdate('d, d m y h:i:s') . ' gmt'); header('cache-control: cache, must-revalidate'); header('pragma: public'); $objwriter = phpexcel_iofactory::createwriter($objphpexcel, 'excel5'); $objwriter->save('php://output'); exit;
如上代码所示,如果此方法还是不行,请尝试使用iconv()函数,具体使用此处不做详解,请自行百度
以上就是如何解决php导出excel乱码的问题的详细内容。