php将mysql数据表(含中文数据)导出生成excel表,快速生成且解决中文乱码问题。

解决这个问题花了将近6个小时,看了很多篇博客,方法都不管用。

都快要把自己搞崩溃了,这么个问题花了这么长时间,怪自己太弱。不过,最后奇迹出现了。

很感谢这个微信公众号:猿哥  点击打开链接(有幸看到这篇推文,解决了我的问题)。


下面给出我的案例,可供大家参考。

1.使用轻量级的excel操作库PHP_XLSXWriter,下载源码包。这里我用了猿哥发布的包。

  点击打开链接

2.将上面链接中的PHPXLSXWriter包放到项目目录下。

3.链接数据库页面(database.php)

   <?php
       $Server="localhost";
       $User="root";
       $pw="****";//密码
       $db="****";//数据库名
       $con=mysqli_connect($Server,$User,$pw,$db); 
       // 检查连接 
       if (!$con) 
       { 
           die("连接错误: " . mysqli_connect_error()); 
       } 
       else
            echo "数据库连接成功"."<br>";
       //设置客户端和连接字符集  
       mysqli_set_charset($con,"utf8");

?>

4.处理表格生成excel的页面(deal.php)

   1)数据库中表的结构

       

2)代码

     <?php  

              include("database.php");
              #使用轻量级的excel操作库PHP_XLSXWriter
              $timeStart = microtime(true);
             include("./PHP_XLSXWriter/vendor/autoload.php");
             $writer = new XLSXWriter();
            $sheetHeader = [
                   '公司名称'=>'string',
                  '销售员'=>'string',
                  '所属部门'=>'string',
                  '单位审核时间'=>'string',
                  '最后联系时间'=>'string',
                  '间隔'=>'string',
                  '达标'=>'string'
            ];//表头 
       $writer->writeSheetHeader('Sheet1',  $sheetHeader);//optional
       $sql="SELECT * FROM 表名";       
        $result=mysqli_query($con,$sql);   
      while($row =mysqli_fetch_array($result))//选择你需要的字段并写入excel
   {
    $s1=$row['company_name'];
    $s2=$row['saler'];
    $s3=$row['sector'];
    $s4=$row['audit_time'];
    $s5=$row['last_time'];
    $s6=$row['time_interval'];
    $s7=$row['standard'];
    echo $s1." ".$s2." ".$s3." ".$s4." ".$s5." ".$s6." ".$s7."<br>";
    $writer->writeSheetRow('Sheet1', array($s1, $s2, $s3, $s4, $s5, $s6, $s7));
}
$writer->writeToFile('D:tmp\goods.xlsx');//路径名
echo floor((memory_get_peak_usage())/1024/1024)."MB";
echo "\n";
echo microtime(true) -$timeStart;

?>  


亲测有效,成功写入excel文件!!!!再次感谢微信公众号:猿哥大笑

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章