LaravelでSQL Serverから抽出した結果をCSV出力しようとしています。
ですがcsvをExcelで開いた際に日付のカラムが正しく表示されません。
なので、クエリを書く箇所で日付のカラムにシングルコーテーションを付けたしたいのですが
そのやり方がわかりませんでした。
よろしくお願い致します。
Laravel
1public function getCSV(){ 2 $fileName = "状況_". date('YmdHis'). ".csv"; 3 4 try { 5 6 $sql = DB::table('Tmail') 7 ->join('arrival','Tmail.key_no','=','arrival.key_no') 8 ->select('Tmail.key_no','work','send_dt')->get(); 9 10 11 // CSV形式でファイルを作成 12 // Linuxの場合/tmp/フォルダに作成する 13 $csvFileName = './downloadfiles/csv_list/'. $fileName; 14 $res = fopen($csvFileName, 'w'); 15 if ($res === FALSE) { 16 throw new Exception('ファイルの書き込みに失敗しました。'); 17 } 18 19 // CSVヘッダーの作成 20 $csvHeader = array("番号", "作業日", "送信日"); 21 22 // 機種依存文字が含まれるので SJIS-win を使用 23 mb_convert_variables('SJIS-win', 'UTF-8', $csvHeader); 24 fputcsv($res, $csvHeader); 25 26 27 // 配信情報を取得 28 $resultList = $sql; 29 30 while (count($resultList) > 0) { 31 foreach($resultList as $result) { 32 mb_convert_variables('SJIS-win', 'UTF-8', $result); 33 // stdClassから配列に変換 34 $resultArray = get_object_vars($result); 35 // ファイルに書き出しをする 36 fputcsv($res, $resultArray); 37 } 38 39 unset($resultList); 40 41 } 42 // ハンドル閉じる 43 fclose($res); 44 // ダウンロード 45 return Response::download($csvFileName, $fileName); 46 47 } catch(Exception $e) { 48 echo $e->getMessage(); 49 } 50 }
csv
1番号,作業日,送信日 21878806,"2017-01-25 16:24:14","2017-01-31 18:56:27.000" 31852883,"2017-01-25 16:25:43","2017-02-02 17:37:20.000" 4. 5. 6.
回答1件
あなたの回答
tips
プレビュー