美文网首页
原生PHP导出excel文件

原生PHP导出excel文件

作者: 郁_2b2d | 来源:发表于2020-08-12 16:50 被阅读0次

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

    <?php 
    header("Content-type:application/vnd.ms-excel",charset=UTF8-Bom); 
    header("Content-Disposition:attachment;filename=test.xls");//test.xls为文件名字
    
    $tab="\t"; 
    $br="\n";
    $head="编号".$tab."备注".$br;
    //输出内容如下:  
    echo $head.$br;
    
    echo  "test321318312".$tab;  
    echo  "string1"; 
    echo  $br;
    
    echo  "330181199006061234".$tab;  //直接输出会被Excel识别为数字类型
    echo  "number"; 
    echo  $br;
    ?>
    

    上面的代码会导出下面的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文件

          本文链接:https://www.haomeiwen.com/subject/mycmdktx.html