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文件!!!!再次感謝微信公衆號:猿哥大笑

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