原生PHP导出excel文件

一直以为PHP导出excel需要用PhpSpreadsheet或者PHPExcel这类插件,但其实原生PHP也可以导出excel,而且非常简单。


上面的代码会导出下面的excel

编号 备注
test321318312 string1
330181199006061234 number

需要注意的问题

1.长数字会自动变成科学计数法

我们输出330181199006061234这样的长数字时,excel会显示成3.30E+17这种科学计数法,但是类似身份证号码、手机号码这样的数字,需要直接显示出来。

//在excel会直接显示
echo  "=\"330181199006061234\"".$tab;  
echo  '="'.$PhoneNumber.'"';

所以只需要在长数字前面加 =" 后面加" 就可以了

2.中文的编码问题

中文会变成一串乱码,是因为导出的excel文件默认是utf8,没有带BOM的, 微软会将其当作GBK打开,中文就会乱码。
所以我们需要在header头指定文件的编码为UTF8-Bom。

header("Content-type:application/vnd.ms-excel",charset=UTF8-Bom"); 

参考
https://www.zhihu.com/question/23392439
https://cloud.tencent.com/developer/article/1090648

你可能感兴趣的:(原生PHP导出excel文件)