解決這個問題花了將近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文件!!!!再次感謝微信公衆號:猿哥