ユーザ用ツール

サイト用ツール


プログラム言語:php:laravel:csvダウンロード

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

プログラム言語:php:laravel:csvダウンロード [2021/02/25 17:27]
humolife 作成
プログラム言語:php:laravel:csvダウンロード [2022/09/29 11:46] (現在)
humolife [App\Http\Controllers\CsvController.php]
行 2: 行 2:
 Laravel で CSV ダウンロード機能を実装する一例。 Laravel で CSV ダウンロード機能を実装する一例。
 ===== App\Http\Controllers\CsvController.php ===== ===== App\Http\Controllers\CsvController.php =====
-文字コードを SJIS-win で出力場合の例。\\+文字コードを SJIS で出力する場合の例。\\ 
 +==== まとめて文字コードを UTF-8 から SJIS(CP932) に変換する例 ====
 <code> <code>
 class CsvController extends Controller class CsvController extends Controller
 { {
-    public function download(Survey $survey)+    public function download(
 +    { 
 +        $users = Users::get(); 
 + 
 +        $response = new StreamedResponse(function () use ($users) { 
 +            $stream = fopen('php://output', 'w'); 
 + 
 +            stream_filter_prepend($stream, 'convert.iconv.utf-8/cp932//TRANSLIT'); 
 + 
 +            fputcsv($stream,
 +                'ID', '名前', 'メールアドレス' 
 +            ]); 
 + 
 +            foreach ($user as $key => $user) { 
 +                fputcsv($stream,
 +                    $user->id, 
 +                    $user->name, 
 +                    $user->email, 
 +                ]); 
 +            } 
 + 
 +            fclose($stream); 
 +        }); 
 + 
 +        $file_name = 'ファイル名.csv'; 
 + 
 +        $response->headers->set('Content-Type', 'application/octet-stream'); 
 +        $response->headers->set('content-disposition', 'attachment; filename=' . $file_name); 
 + 
 +        return $response; 
 +    } 
 +
 +</code> 
 + 
 +==== 1行毎に文字コードを UTF-8 から SJIS-win に変換する例 ==== 
 +<code> 
 +class CsvController extends Controller 
 +
 +    public function download()
     {     {
         $csv_headers = ['No.', 'Name', 'Date'];         $csv_headers = ['No.', 'Name', 'Date'];
行 14: 行 53:
  
         return response()->streamDownload(         return response()->streamDownload(
-            function () use ($survey, $csv_headers, $csv_body) {+            function () use ($csv_headers, $csv_body) {
                 $stream = fopen('php://output', 'w');                 $stream = fopen('php://output', 'w');
  
プログラム言語/php/laravel/csvダウンロード.txt · 最終更新: 2022/09/29 11:46 by humolife