PHP匯出CSV檔案

2022-07-15 03:18:13 字數 923 閱讀 3301

經常會碰到需要從資料庫中匯出資料到excel檔案,用一些開源的類庫,比如phpexcel,確實比較容易實現,但對大量資料的支援很不好,很容易到達php記憶體使用上限。這裡的方法是利用fputcsv寫csv檔案的方法,直接向瀏覽器輸出excel檔案。

// 輸出excel檔案頭,可把user.csv換成你要的檔名

header('content-disposition: attachment;filename="user.csv"');

header('cache-control: max-age=0');

// 從資料庫中獲取資料,為了節省記憶體,不要把資料一次性讀到記憶體,從控制代碼中一行一行讀即可

$sql = 'select * from tbl where ……';

$stmt = $db->query($sql);

// 開啟php檔案控制代碼,php://output 表示直接輸出到瀏覽器

$fp = fopen('php://output', 'a');

// 輸出excel列名資訊

$head = array('姓名', '性別', '年齡', 'email', '**', '……');

foreach ($head as $i => $v)

// 將資料通過fputcsv寫到檔案控制代碼

fputcsv($fp, $head);

// 計數器

$cnt = 0;

// 每隔$limit行,重新整理一下輸出buffer,不要太大,也不要太小

$limit = 100000;

// 逐行取出資料,不浪費記憶體

while ($row = $stmt->fetch(zend_db::fetch_num))

foreach ($row as $i => $v)

fputcsv($fp, $row);

}

php 匯出csv檔案例項

csv是以逗號間隔的文字檔案 開發中,匯出功能經常會用到,當資料量比較大的時候,發現csv格式的效率要比xls的效率要高一些,以yii先開發為例,優化 資料匯出 public filename 方法1 public function export item iconv utf 8 gbk val p...

php實現匯出csv檔案

為何要用csv匯出檔案呢,因為它小巧,匯出資料效率高,萬行資料秒級匯出。不香嗎?user 青草根 email caimh0223 163.com blog qq 876146977 微 信 caimh0223 date 2020 05 30 time 14 08 description 輸入到csv...

PHP實現匯出CSV檔案

在做匯出乙個資訊表為excel檔案這個功能完成之後,自己用得好好的,但是到hr那邊就告訴我匯出的檔案無法用她電腦上的office開啟,心想,相容沒做好,想問下她的版本號,結果半天沒回覆訊息。我老大來了句 轉csv檔案吧,沒有相容性的說法。然後開始折騰csv,在這之前我只是見過 匯出csv檔案 的字樣...