經常會碰到需要從數據庫中導出數據到Excel文件,用一些開源的類庫,比如PHPExcel,確實比較容易實現,但對大量數據的支持很不好,很容易到達PHP內存使用上限。這里的方法是利用fputcsv寫CSV文件的方法,直接向瀏覽器輸出Excel文件。
以下是代碼片段: <?php // 輸出Excel文件頭,可把user.csv換成你要的文件名 header(’Content-Type: application/vnd.ms-excel’); header(’Content-Disposition: attachment;filename=”user.csv”’); header(’Cache-Control: max-age=0’);
// 從數據庫中獲取數據,為了節省內存,不要把數據一次性讀到內存,從句柄中一行一行讀即可 // 打開PHP文件句柄,php://output 表示直接輸出到瀏覽器 // 輸出Excel列名信息 // 將數據通過fputcsv寫到文件句柄 // 計數器 // 逐行取出數據,不浪費內存 $cnt ++; foreach ($row as $i => $v) { |
簡單易用,非常節省內存,不依賴第三方類庫。
轉:http://ourmysql.com/archives/874?f=wb