PHP有什麼辦法 可以把10萬筆記錄一次匯出到Excel裡?
PHP有什麼辦法 可以把10萬筆記錄一次匯出到Excel裡?
使用MYSQLI_USE_RESULT無緩衝查詢,細水長流,逐條從MySQL獲取,在循環fetch_row裡fputcsv($fp, $row)逐條寫入資料到檔案,然後提供給使用者下載.邏輯大概如下:
query($sql, MYSQLI_USE_RESULT); //无缓冲查询 while ($row = $result->fetch_row()) { //逐条读取(无缓冲查询) fputcsv($fp, $row); //逐条写入 } fclose($fp); header('Content-Disposition: attachment; filename="file.csv"'); readfile('file.csv');
你正常下載就可以啊。
PHPExcel支援行緩存,將設定一個檔案快取即可。
https://github.com/PHPOffice/...
分批次寫入,一次導出10w筆記錄並進行寫入容易出現超時的情況,建議根據伺服器的效能狀況及內容的大小進行測試