【黄啊码】PhpSpreadsheet导出excel乱码解决办法,超级简单
【摘要】
$spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); foreach ($list as $key => $value) { foreach ($field as $k =>...
-
$spreadsheet = new Spreadsheet();
-
$sheet = $spreadsheet->getActiveSheet();
-
foreach ($list as $key => $value) {
-
foreach ($field as $k => $v) {
-
if ($key == 0) {
-
$sheet->setCellValue($k . '1', $v[1]);
-
}
-
$i = $key + 2; //表格是从2开始的
-
$sheet->setCellValue($k . $i, $value[$v[0]]);
-
}
-
}
-
ob_clean();
-
header("Content-type:application/vnd.ms-excel;charset=UTF-8");
-
header('Content-Type: application/vnd.ms-excel');
-
header('Content-Disposition: attachment;filename="'.$title.'.excel"');
-
header('Cache-Control: max-age=0');
-
$writer = new Csv($spreadsheet);
-
$writer->save('php://output');
这代码看上去好像毫无问题,然而导出csv就是乱码,但是xls/xlsx就没问题
网上的网友说得天花乱坠,有一些网友知道是bom头导致的,就干脆自己写一个,但能少写代码不香吗?
最终能解决办法的只有一个,设置bom头。把这里的false改为true,这个方法放在导出csv文件一样通用
文章来源: markwcm.blog.csdn.net,作者:黄啊码,版权归原作者所有,如需转载,请联系作者。
原文链接:markwcm.blog.csdn.net/article/details/121655737
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)