CSV文件是以純文本形式存儲的,通常以逗號爲分隔符。
這裏主要簡單介紹下如何導出CSV文件。瀏覽器
/** * 導出CSV文件 */ function exportCsv() { // 須要導出的內容 $data = [ ['name' => '張三', 'score' => '80'], ['name' => '李四', 'score' => '90'], ['name' => '王五', 'score' => '60'], ]; // 文件名,這裏都要將utf-8編碼轉爲gbk,要不可能出現亂碼現象 $filename = $this->utfToGbk('導出csv文件.csv'); // 拼接文件信息,這裏注意兩點 // 一、字段與字段之間用逗號分隔開 // 二、行與行之間須要換行符 $fileData = $this->utfToGbk('姓名, 分數') . "\n"; foreach ($data as $value) { $temp = $value['name'] . ',' . $value['score']; $fileData .= $this->utfToGbk($temp) . "\n"; } // 頭信息設置 header("Content-type:text/csv"); header("Content-Disposition:attachment;filename=" . $filename); header('Cache-Control:must-revalidate,post-check=0,pre-check=0'); header('Expires:0'); header('Pragma:public'); echo $fileData; exit; } /** * 字符轉換(utf-8 => GBK) */ function utfToGbk($data) { return iconv('utf-8', 'GBK', $data); }
/** * 下載CSV文件 */ public function downLoadCsv() { // 須要導出的內容 $data = [ ['name' => '張三', 'score' => '80'], ['name' => '李四', 'score' => '90'], ['name' => '王五', 'score' => '60'], ]; // 文件名,這裏都要將utf-8編碼轉爲gbk,要不可能出現亂碼現象 $filename = $this->utfToGbk('生成csv文件.csv'); // 拼接文件信息,這裏注意兩點 // 一、字段與字段之間用逗號分隔開 // 二、行與行之間須要換行符 $fileData = $this->utfToGbk('姓名, 分數') . "\n"; foreach ($data as $value) { $temp = $value['name'] . ',' . $value['score']; $fileData .= $this->utfToGbk($temp) . "\n"; } $filePath = __DIR__ . '/' . $filename; // 將一個字符串寫入文件 file_put_contents($filePath, $fileData); return $filePath; } /** * 字符轉換(utf-8 => GBK) */ public function utfToGbk($data) { return iconv('utf-8', 'GBK', $data); }