Laravel导出CSV
<?php
namespace App\Services;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
class ReportsBase
{
/**
* 写入CSV文件
* @param string $file_name
* @param array $arrHeader
* @param array $arrDataList
* @return array
*/
public static function writeFile(string $file_name = '', array $arrHeader = [], array $arrDataList = []): array
{
ini_set('memory_limit', '2048M');
$dir_name = 'export/';
$file_name = $dir_name . sprintf("%s", $file_name . ".csv");
$fileData = implode(',', $arrHeader) . "\r\n";
foreach ($arrDataList as $line) {
$fileData .= implode(',', str_replace(',', ' ', $line)) . "\r\n";
}
\Storage::disk('local')->put($file_name, mb_convert_encoding($fileData, 'gbk', 'utf-8'));
return [
'file_path' => $dir_name,
'file_name' => storage_path('app/' . $file_name),
];
}
/**
* 下载文件
* @param $file
* @return BinaryFileResponse
*/
public static function downloadCsv($file): BinaryFileResponse
{
return response()->download($file)->deleteFileAfterSend();
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。