{"id":824,"date":"2025-06-12T00:32:36","date_gmt":"2025-06-11T16:32:36","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/824.html"},"modified":"2025-06-12T00:32:36","modified_gmt":"2025-06-11T16:32:36","slug":"%e5%a6%82%e4%bd%95%e5%9c%a8laravel%e4%b8%ad%e8%bf%94%e5%9b%9ecsv%e6%96%87%e4%bb%b6","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/824.html","title":{"rendered":"\u5982\u4f55\u5728Laravel\u4e2d\u8fd4\u56deCSV\u6587\u4ef6"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312;Laravel&#20013;&#36820;&#22238;CSV&#25991;&#20214;&#21487;&#20197;&#36890;&#36807;&#22810;&#31181;&#26041;&#24335;&#23454;&#29616;&#12290;&#20197;&#19979;&#26159;&#20960;&#31181;&#24120;&#35265;&#30340;&#26041;&#27861;&#65306;<\/p>\n<h3>&#26041;&#27861;&#19968;&#65306;&#20351;&#29992;<code>Response<\/code>&#31867;<\/h3>\n<pre><code class=\"language-php\">use IlluminateHttpResponse;\n\npublic function downloadCsv()\n{\n    \/\/ &#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#25968;&#32452;$data&#65292;&#20854;&#20013;&#21253;&#21547;&#20102;&#35201;&#23548;&#20986;&#30340;CSV&#25968;&#25454;\n    $data = [\n        ['Name', 'Email', 'Age'],\n        ['John Doe', 'john@example.com', 30],\n        ['Jane Smith', 'jane@example.com', 25]\n    ];\n\n    \/\/ &#21019;&#24314;&#19968;&#20010;&#26032;&#30340;Excel&#25991;&#20214;&#24182;&#28155;&#21152;&#25968;&#25454;\n    Excel::create('users', function ($excel) use ($data) {\n        $excel-&gt;sheet('Sheet1', function ($sheet) use ($data) {\n            foreach ($data as $row) {\n                $sheet-&gt;append($row);\n            }\n        });\n    })-&gt;download('users.csv');\n}<\/code><\/pre>\n<h3>&#26041;&#27861;&#20108;&#65306;&#20351;&#29992;<code>Excel<\/code> facade<\/h3>\n<p>&#22914;&#26524;&#20320;&#24050;&#32463;&#23433;&#35013;&#20102;<code>MaatwebsiteExcel<\/code>&#21253;&#65292;&#21487;&#20197;&#20351;&#29992;&#23427;&#26469;&#21019;&#24314;&#21644;&#19979;&#36733;CSV&#25991;&#20214;&#12290;<\/p>\n<p>&#39318;&#20808;&#65292;&#30830;&#20445;&#20320;&#24050;&#32463;&#23433;&#35013;&#20102;&#36825;&#20010;&#21253;&#65306;<\/p>\n<pre><code class=\"language-bash\">composer require maatwebsite\/excel<\/code><\/pre>\n<p>&#28982;&#21518;&#65292;&#20320;&#21487;&#20197;&#36825;&#26679;&#29983;&#25104;&#21644;&#19979;&#36733;CSV&#25991;&#20214;&#65306;<\/p>\n<pre><code class=\"language-php\">use MaatwebsiteExcelFacadesExcel;\nuse IlluminateSupportFacadesResponse;\n\npublic function downloadCsv()\n{\n    \/\/ &#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#25968;&#32452;$data&#65292;&#20854;&#20013;&#21253;&#21547;&#20102;&#35201;&#23548;&#20986;&#30340;CSV&#25968;&#25454;\n    $data = [\n        ['Name', 'Email', 'Age'],\n        ['John Doe', 'john@example.com', 30],\n        ['Jane Smith', 'jane@example.com', 25]\n    ];\n\n    \/\/ &#20351;&#29992;Excel facade&#21019;&#24314;&#26032;&#30340;Excel&#25991;&#20214;&#24182;&#28155;&#21152;&#25968;&#25454;\n    Excel::create('users', function ($excel) use ($data) {\n        $excel-&gt;sheet('Sheet1', function ($sheet) use ($data) {\n            foreach ($data as $row) {\n                $sheet-&gt;append($row);\n            }\n        });\n    })-&gt;download('users.csv');\n}<\/code><\/pre>\n<h3>&#26041;&#27861;&#19977;&#65306;&#20351;&#29992;<code>File<\/code> facade<\/h3>\n<p>&#22914;&#26524;&#20320;&#38656;&#35201;&#23558;&#25968;&#25454;&#30452;&#25509;&#20889;&#20837;&#21040;CSV&#25991;&#20214;&#20013;&#65292;&#21487;&#20197;&#20351;&#29992;<code>File<\/code> facade&#12290;<\/p>\n<pre><code class=\"language-php\">use IlluminateSupportFacadesFile;\n\npublic function downloadCsv()\n{\n    \/\/ &#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#25968;&#32452;$data&#65292;&#20854;&#20013;&#21253;&#21547;&#20102;&#35201;&#23548;&#20986;&#30340;CSV&#25968;&#25454;\n    $data = [\n        ['Name', 'Email', 'Age'],\n        ['John Doe', 'john@example.com', 30],\n        ['Jane Smith', 'jane@example.com', 25]\n    ];\n\n    \/\/ &#25171;&#24320;&#19968;&#20010;&#26032;&#25991;&#20214;&#24182;&#20889;&#20837;CSV&#25968;&#25454;\n    $file = fopen(storage_path('app\/users.csv'), 'w');\n\n    \/\/ &#20889;&#20837;&#34920;&#22836;\n    fputcsv($file, array_keys($data[0]));\n\n    \/\/ &#20889;&#20837;&#25968;&#25454;&#34892;\n    foreach ($data as $row) {\n        fputcsv($file, $row);\n    }\n\n    fclose($file);\n\n    \/\/ &#36820;&#22238;&#19979;&#36733;&#38142;&#25509;\n    return response()-&gt;download(storage_path('app\/users.csv'));\n}<\/code><\/pre>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#20197;&#19979;&#26159;&#19968;&#20010;&#23436;&#25972;&#30340;&#31034;&#20363;&#25511;&#21046;&#22120;&#65292;&#23637;&#31034;&#20102;&#22914;&#20309;&#20351;&#29992;<code>Response<\/code>&#31867;&#21644;<code>Excel<\/code> facade&#26469;&#36820;&#22238;CSV&#25991;&#20214;&#65306;<\/p>\n<pre><code class=\"language-php\">use IlluminateHttpRequest;\nuse IlluminateSupportFacadesResponse;\nuse MaatwebsiteExcelFacadesExcel;\n\nclass UserController extends Controller\n{\n    public function downloadCsv()\n    {\n        \/\/ &#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#25968;&#32452;$data&#65292;&#20854;&#20013;&#21253;&#21547;&#20102;&#35201;&#23548;&#20986;&#30340;CSV&#25968;&#25454;\n        $data = [\n            ['Name', 'Email', 'Age'],\n            ['John Doe', 'john@example.com', 30],\n            ['Jane Smith', 'jane@example.com', 25]\n        ];\n\n        \/\/ &#20351;&#29992;Excel facade&#21019;&#24314;&#26032;&#30340;Excel&#25991;&#20214;&#24182;&#28155;&#21152;&#25968;&#25454;\n        Excel::create('users', function ($excel) use ($data) {\n            $excel-&gt;sheet('Sheet1', function ($sheet) use ($data) {\n                foreach ($data as $row) {\n                    $sheet-&gt;append($row);\n                }\n            });\n        })-&gt;download('users.csv');\n\n        \/\/ &#36820;&#22238;&#19979;&#36733;&#38142;&#25509;\n        return Response()-&gt;download(storage_path('app\/users.csv'));\n    }\n}<\/code><\/pre>\n<p>&#36890;&#36807;&#36825;&#20123;&#26041;&#27861;&#65292;&#20320;&#21487;&#20197;&#22312;Laravel&#20013;&#36731;&#26494;&#22320;&#36820;&#22238;CSV&#25991;&#20214;&#12290;&#36873;&#25321;&#21738;&#31181;&#26041;&#27861;&#21462;&#20915;&#20110;&#20320;&#30340;&#20855;&#20307;&#38656;&#27714;&#21644;&#39033;&#30446;&#32467;&#26500;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><h2>&#20171;&#32461;<\/h2><p>&#24403;&#28041;&#21450;&#21040;&#29983;&#25104;&#21487;&#19979;&#36733;&#30340;&#20869;&#23481;&#26102;&#65292;CSV&#25991;&#20214;&#26159;&#26368;&#24120;&#35265;&#30340;&#24320;&#21457;&#32773;&#36935;&#21040;&#30340;&#26684;&#24335;&#20043;&#19968;&#12290;&#22312;Laravel&#20013;&#21019;&#24314;&#21644;&#19979;&#36733;&#27492;&#31867;&#25991;&#20214;&#21487;&#20197;&#36731;&#26494;&#23454;&#29616;&#12290;&#26412;&#25945;&#31243;&#23558;&#25351;&#23548;&#24744;&#36890;&#36807;&#21508;&#31181;&#25216;&#26415;&#21644;&#21253;&#26469;&#21019;&#24314;&#24182;&#22312;Laravel&#24212;&#29992;&#31243;&#24207;&#20013;&#26381;&#21153;CSV&#25991;&#20214;&#30340;&#36807;&#31243;&#12290;<\/p><p>&#24517;&#22791;&#26465;&#20214;<\/p><p>Composer &#24050;&#26412;&#22320;&#23433;&#35013;&#12290;<\/p><p>&#19968;&#20010;&#24037;&#20316;&#30340;Laravel&#24212;&#29992;&#31243;&#24207;&#35774;&#32622;<\/p><p>&#22522;&#26412;&#30340;PHP&#21644;Laravel&#30693;&#35782;<\/p><h2>&#36820;&#22238;&#19968;&#20010;&#22522;&#26412;&#30340;CSV&#25991;&#20214;<\/h2><p>&#35753;&#25105;&#20204;&#20174;&#20351;&#29992;PHP&#20869;&#32622;&#20989;&#25968;&#23454;&#29616;Laravel&#20013;&#26368;&#22522;&#30784;&#30340;CSV&#25991;&#20214;&#36820;&#22238;&#24320;&#22987;&#65306;<\/p><pre><code>&lt;?php\n\nnamespace AppHttpControllers;\n\nuse IlluminateHttpRequest;\nuse SymfonyComponentHttpFoundationStreamedResponse;\n\nclass ExportController extends Controller\n{\n    public function downloadCSV()\n    {\n        $callback = function() {\n            $handle = fopen('php:\/\/output', 'w');\n            fputcsv($handle, ['Header1', 'Header2', 'Header3']);\n            fputcsv($handle, ['Data1', 'Data2', 'Data3']);\n            fclose($handle);\n        };\n\n        return new StreamedResponse($callback, 200, [\n            'Content-Type' =&gt; 'text\/csv',\n            'Content-Disposition' =&gt; 'attachment; filename=\"export.csv\"',\n        ]);\n    }\n}\n<\/code><\/pre><p>&#22312;&#19978;&#36848;&#20195;&#30721;&#20013;&#65292;&#20250;&#29983;&#25104;&#19968;&#20010;&#20020;&#26102;&#30340;CSV&#25991;&#20214;&#24182;&#23558;&#20854;&#20316;&#20026;&#19979;&#36733;&#21457;&#36865;&#21040;&#27983;&#35272;&#22120;&#12290;<code>php:\/\/output<\/code>&#29992;&#20110;&#30452;&#25509;&#23558;&#36755;&#20986;&#20316;&#20026;&#27969;&#24335;&#21709;&#24212;&#20889;&#20837;&#12290;<\/p><h2>&#20351;&#29992;Laravel&#30340;&#21709;&#24212;&#21161;&#25163;<\/h2><p>Laravel &#25552;&#20379;&#20102;&#26356;&#27969;&#30021;&#30340;&#25509;&#21475;&#26469;&#21457;&#36865;&#19981;&#21516;&#31867;&#22411;&#30340;&#25968;&#25454;&#21709;&#24212;&#65292;&#21253;&#25324;CSV&#25991;&#20214;&#12290;&#35753;&#25105;&#20204;&#20351;&#29992;&#21709;&#24212;&#21161;&#25163;&#26469;&#28165;&#29702;&#25105;&#20204;&#30340;CSV&#36755;&#20986;&#65306;<\/p><pre><code>public function downloadCSV()\n{\n    $filename = \"export.csv\";\n    $headers = [\n        'Content-type' =&gt; 'text\/csv',\n        'Content-Disposition' =&gt; \"attachment; filename=$filename\",\n        'Pragma' =&gt; 'no-cache',\n        'Cache-Control' =&gt; 'must-revalidate, post-check=0, pre-check=0',\n        'Expires' =&gt; '0'\n    ];\n\n    $columns = ['Header1', 'Header2', 'Header3'];\n\n    $callback = function() use ($columns) {\n        $file = fopen('php:\/\/output', 'w');\n        fputcsv($file, $columns);\n\n        \/\/ Sample data\n        foreach(range(1, 10) as $index) {\n            fputcsv($file, [\"Row $index Col 1\", \"Row $index Col 2\", \"Row $index Col 3\"]);\n        }\n        fclose($file);\n    };\n\n    return response()-&gt;stream($callback, 200, $headers);\n}\n<\/code><\/pre><p>&#20195;&#30721;&#23637;&#31034;&#20102;&#21019;&#24314;&#19968;&#20010;&#21253;&#21547;&#25968;&#32452;&#22836;&#37096;&#21644;&#29983;&#25104;&#31034;&#20363;&#25968;&#25454;&#30340;CSV&#25991;&#20214;&#30340;&#36807;&#31243;&#12290;&#28436;&#31034;&#20102;&#36890;&#36807;&#21709;&#24212;&#21161;&#25163;&#21457;&#36865;CSV&#25991;&#20214;&#20316;&#20026;&#27969;&#30340;&#19968;&#31181;&#26356;&#28165;&#27905;&#30340;&#26041;&#27861;&#12290;<\/p><h2>&#20351;&#29992;&#39044;&#23450;&#20041;&#30340;&#25968;&#32452;<\/h2><p>&#32463;&#24120;&#38656;&#35201;&#23558;&#29616;&#26377;&#25968;&#32452;&#23548;&#20986;&#20026;CSV&#26684;&#24335;&#12290;&#20197;&#19979;&#26159;&#23454;&#29616;&#26041;&#27861;&#65306;<\/p><pre><code>public function exportPredefinedArray()\n{\n    $list = [\n        ['Header1', 'Header2', 'Header3'],\n        ['Data1', 'Data2', 'Data3'],\n        \/\/ Other data rows...\n    ];\n\n    $headers = [\n        'Content-Type' =&gt; 'text\/csv',\n        'Content-Disposition' =&gt; 'attachment; filename=\"export.csv\"',\n    ];\n\n    $callback = function() use ($list) {\n        $file = fopen('php:\/\/output', 'w');\n        foreach ($list as $row) {\n            fputcsv($file, $row);\n        }\n        fclose($file);\n    };\n\n    return response()-&gt;stream($callback, 200, $headers);\n}\n<\/code><\/pre><p>&#36825;&#27425;&#65292;&#35201;&#23548;&#20986;&#21040;CSV&#30340;&#25968;&#25454;&#26469;&#33258;&#19968;&#20010;&#39044;&#23450;&#20041;&#30340;&#25968;&#32452;&#12290;&#25105;&#20204;&#36941;&#21382;&#36825;&#20010;&#25968;&#32452;&#24182;&#23558;&#20854;&#27599;&#19968;&#34892;&#36755;&#20986;&#20026;CSV&#34892;&#12290;<\/p><h2>&#20174;&#25968;&#25454;&#24211;&#29983;&#25104;CSV&#25991;&#20214;<\/h2><p>&#20026;&#20102;&#20174;&#25968;&#25454;&#24211;&#23548;&#20986;&#25968;&#25454;&#65292;&#20320;&#21487;&#20197;&#33719;&#21462;&#20320;&#30340;&#27169;&#22411;&#24182;&#36941;&#21382;&#32467;&#26524;&#12290;&#20363;&#22914;&#65292;&#35753;&#25105;&#20204;&#23548;&#20986;&#29992;&#25143;&#65306;<\/p><pre><code>use AppModelsUser;\n\n\/\/...\n\npublic function exportUsers()\n{\n    $headers = [\n        'Content-Type' =&gt; 'text\/csv',\n        'Content-Disposition' =&gt; 'attachment; filename=\"users.csv\"',\n    ];\n\n    $callback = function() {\n        $users = User::all();\n        $csv = fopen('php:\/\/output', 'w');\n\n        fputcsv($csv, ['ID', 'Name', 'Email']);\n\n        foreach ($users as $user) {\n            fputcsv($csv, [$user-&gt;id, $user-&gt;name, $user-&gt;email]);\n        }\n\n        fclose($csv);\n    };\n\n    return response()-&gt;stream($callback, 200, $headers);\n}\n<\/code><\/pre><p>&#36825;&#20010;&#20195;&#30721;&#20174;User&#27169;&#22411;&#20013;&#33719;&#21462;&#25152;&#26377;&#29992;&#25143;&#65292;&#24182;&#23558;&#27599;&#20010;&#29992;&#25143;&#20889;&#20837;CSV&#25991;&#20214;&#20013;&#30340;&#27599;&#19968;&#34892;&#12290;<\/p><h2>&#20351;&#29992;&#31532;&#19977;&#26041;&#24211;<\/h2><p>&#34429;&#28982;&#26412;&#22320;&#35299;&#20915;&#26041;&#26696;&#24037;&#20316;&#24471;&#24456;&#22909;&#65292;&#31532;&#19977;&#26041;&#24211;&#21487;&#20197;&#31616;&#21270;&#36807;&#31243;&#12290;<code>laravel-excel<\/code>&#21253;&#21517;&#20026;by Maatwebsite&#26159;&#19968;&#20010;&#21463;&#27426;&#36814;&#30340;&#36873;&#25321;&#12290;&#39318;&#20808;&#65292;&#23433;&#35013;&#23427;&#65306;<\/p><pre><code>composer require maatwebsite\/excel\n<\/code><\/pre><p>&#28982;&#21518;&#65292;&#20351;&#29992;&#23427;&#21019;&#24314;&#19968;&#20010;&#23548;&#20986;&#31867;&#65306;<\/p><pre><code>php artisan make:export UsersExport --model=User\n<\/code><\/pre><p>&#35831;&#25552;&#20379;&#26356;&#22810;&#20449;&#24687;&#65292;&#20197;&#20415;&#25105;&#20026;&#24744;&#25552;&#20379;&#26356;&#20934;&#30830;&#30340;&#24110;&#21161;&#12290;<\/p><pre><code>namespace AppExports;\n\nuse MaatwebsiteExcelConcernsFromCollection;\nuse AppModelsUser;\n\nclass UsersExport implements FromCollection\n{\n    public function collection()\n    {\n        return User::all();\n    }\n}\n<\/code><\/pre><p>&#26368;&#21518;&#65292;&#21487;&#20197;&#22312;&#25511;&#21046;&#22120;&#20013;&#20351;&#29992;&#23427;&#65306;<\/p><pre><code>use AppExportsUsersExport;\nuse MaatwebsiteExcelFacadesExcel;\n\n\/\/...\n\npublic function exportExcel()\n{\n    return Excel::download(new UsersExport, 'users.xlsx');\n}\n<\/code><\/pre><p>&#36825;&#27573;&#20195;&#30721;&#29255;&#27573;&#19981;&#36820;&#22238;CSV&#26684;&#24335;&#65292;&#32780;&#26159;&#36820;&#22238;&#19968;&#20010;.XSX&#25991;&#20214;&#65292;&#36825;&#23545;&#20110;&#22312;Excel&#20013;&#24037;&#20316;&#38750;&#24120;&#26377;&#29992;&#12290;<\/p><h2>&#39640;&#32423;&#29992;&#27861; &#8211; &#33258;&#23450;&#20041;&#23548;&#20986;<\/h2><p>&#23545;&#19981;&#36215;&#65292;&#24744;&#30340;&#38382;&#39064;&#27809;&#26377;&#23436;&#20840;&#34920;&#36798;&#28165;&#26970;&#65292;&#35831;&#24744;&#37325;&#26032;&#25551;&#36848;&#19968;&#19979;&#12290;<code>laravel-excel<\/code>&#24744;&#21487;&#20197;&#33258;&#23450;&#20041;&#23548;&#20986;&#30340;&#25968;&#25454;&#65306;<\/p><pre><code>public function map($user): array\n{\n    return [\n        $user-&gt;id,\n        $user-&gt;name,\n        $user-&gt;email,\n        $user-&gt;created_at-&gt;format('Y-m-d'),\n    ];\n}\n\npublic function headings(): array\n{\n    return [\n        'ID',\n        'Name',\n        'Email',\n        'Registered At',\n    ];\n}\n<\/code><\/pre><p>&#22320;&#22270;&#26041;&#27861;&#20801;&#35768;&#24744;&#26681;&#25454;&#38656;&#35201;&#20462;&#25913;&#27599;&#20010;&#29992;&#25143;&#30340;&#23548;&#20986;&#34920;&#31034;&#26041;&#24335;&#65292;&#32780;&#22836;&#30446;&#26041;&#27861;&#21017;&#21487;&#20197;&#26681;&#25454;&#38656;&#35201;&#23450;&#21046;&#22836;&#37096;&#12290;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>&#22312;&#26412;&#25945;&#31243;&#20013;&#65292;&#24744;&#24050;&#32463;&#23398;&#20064;&#20102;&#29983;&#25104;&#21644;&#36820;&#22238;CSV&#25991;&#20214;&#30340;&#20960;&#31181;&#26041;&#27861;&#12290;&#26080;&#35770;&#24744;&#36873;&#25321;&#31616;&#21333;&#30340;&#27969;&#25216;&#26415;&#36824;&#26159;&#24378;&#22823;&#30340;&#22806;&#37096;&#21253;&#65292;Laravel&#37117;&#33021;&#20351;&#36807;&#31243;&#26082;&#31616;&#21333;&#21448;&#39640;&#25928;&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312; Laravel &#20013;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;&#20197;&#19979;&#26041;&#27861;&#23558;&#25968;&#25454;&#23548;&#20986;&#20026; CSV &#25991;&#20214;&#65306;<\/p>\n<ol>\n<li>&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#23433;&#35013; CSV &#27169;&#22359;&#12290;&#22914;&#26524;&#20320;&#36824;&#27809;&#26377;&#23433;&#35013;&#65292;&#21487;&#20197;&#36816;&#34892;&#20197;&#19979;&#21629;&#20196;&#26469;&#23433;&#35013;&#65306;<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">composer require laravel\/csv<\/code><\/pre>\n<ol start=\"2\">\n<li>&#28982;&#21518;&#65292;&#22312;&#25511;&#21046;&#22120;&#20013;&#23548;&#20837; CSV &#27169;&#22359;&#24182;&#33719;&#21462;&#25968;&#25454;&#65306;<\/li>\n<\/ol>\n<pre><code class=\"language-php\">use AppHttpControllersController;\nuse IlluminateSupportFacadesCSV;\n\nclass UserController extends Controller {\n    public function index() {\n        $users = User::all();\n        return view('index', compact('users'));\n    }\n}\n\n\/\/ &#22312;&#25511;&#21046;&#22120;&#20013;&#28155;&#21152;&#23548;&#20986;&#21151;&#33021;\npublic function exportUsers() {\n    return CSV::create($users)\n        -&gt;setFilepath(storage_path('app\/exports\/users.csv'))\n        -&gt;withHeader(['id', 'name', 'email'])\n        -&gt;export();\n}<\/code><\/pre>\n<ol start=\"3\">\n<li>\n<p>&#36816;&#34892;&#25511;&#21046;&#22120;&#20013;&#30340; <code>exportUsers<\/code> &#26041;&#27861;&#26469;&#29983;&#25104; CSV &#25991;&#20214;&#12290;<\/p>\n<\/li>\n<li>\n<p>CSV &#25991;&#20214;&#20250;&#22312; <code>\/storage\/app\/exports\/users.csv<\/code> &#30446;&#24405;&#19979;&#29983;&#25104;&#65292;&#24182;&#19988;&#21487;&#20197;&#36890;&#36807;&#27983;&#35272;&#22120;&#25171;&#24320;&#26597;&#30475;&#12290;<\/p>\n<\/li>\n<\/ol>\n<p>&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#39318;&#20808;&#20174;&#25968;&#25454;&#24211;&#26597;&#35810;&#25152;&#26377;&#29992;&#25143;&#65292;&#28982;&#21518;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340; CSV &#25991;&#20214;&#24182;&#23558;&#26597;&#35810;&#32467;&#26524;&#23548;&#20986;&#21040;&#35813;&#25991;&#20214;&#20013;&#12290;&#26368;&#21518;&#65292;&#25105;&#20204;&#23558;&#29983;&#25104;&#30340; CSV &#25991;&#20214;&#36890;&#36807;&#27983;&#35272;&#22120;&#25171;&#24320;&#12290;<\/p>\n<p>&#27880;&#24847;&#65306;&#36825;&#27573;&#20195;&#30721;&#20551;&#35774;&#20320;&#30340;&#25968;&#25454;&#24211;&#34920;&#21517;&#20026; <code>User<\/code>&#65292;&#24182;&#19988;&#23383;&#27573;&#21517;&#19982;&#39044;&#26399;&#19968;&#33268;&#12290;&#26681;&#25454;&#20320;&#30340;&#20855;&#20307;&#38656;&#27714;&#35843;&#25972;&#26597;&#35810;&#21644;&#23383;&#27573;&#21517;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#22312;Laravel&#20013;&#36820;&#22238;CSV&#25991;&#20214;&#21487;&#20197;&#36890;&#36807;&#22810;&#31181;&#26041;&#24335;&#23454;&#038;#..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-824","my1js","type-my1js","status-publish","hentry","my1js2nav-laravel"],"acf":{"qian_art_seotitle":"","qian_art_seotitle_source":{"label":"SEO\u6807\u9898","type":"text","formatted_value":""},"qian_art_seokws":"","qian_art_seokws_source":{"label":"SEO\u5173\u952e\u8bcd","type":"text","formatted_value":""},"qian_art_stzhong":"","qian_art_stzhong_source":{"label":"\u4e2d | \u77ed\u6807\u9898","type":"text","formatted_value":""}},"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js\/824","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/types\/my1js"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/media?parent=824"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=824"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=824"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=824"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}