当前位置: 代码迷 >> 综合 >> laravel8 excel导出
  详细解决方案

laravel8 excel导出

热度:73   发布时间:2023-11-29 18:03:55.0

.需求 按条件导出数据

使用laravel8 laravel-excel扩展导出excel

第一步 安装扩展

使用composer命令,安装laravel-excel扩展

composer require maatwebsite/excel

第二步 命令创建 excel脚本

php artisan make:export ProjectExport --model=Project

参数:
ProjectExport:脚本名(或者说是新生成的脚本文件名)
--model:引用的model

第三步 脚本中添加以下代码

 

<?phpnamespace App\Exports;use Maatwebsite\Excel\Concerns\FromArray;  // 指定使用数组结构
use Maatwebsite\Excel\Concerns\WithMapping; // 设置excel中每列要展示的数据
use Maatwebsite\Excel\Concerns\WithHeadings; // 设置excel的首行对应的表头信息
use Illuminate\Contracts\Support\Responsable;
use Maatwebsite\Excel\Concerns\Exportable;class FinancialProjectExport implements FromArray, WithMapping, WithHeadings, Responsable
{use Exportable;protected $data;private $fileName;
public function __construct(array $data){$this->data     = $data; // 实例化该脚本的时候,需要传入要导出的数据$this->fileName = date('YmdHis') . '_Financial_project.xlsx'; // 指定导出的文件名}public function array(): array // 返回的数据 {return $this->data;}public function map($value): array // 指定excel中每一列的数据字段{return [$value['business_principal_name'],$value['income_team'],$value['income_group'],];}public function headings(): array // 指定excel的表头{return ['年份','月份','立项日期',];}
}

第四步 也就是最后一步  主需要调用下面的 接口即可

经过上面三步的准备工作,接下来就是收获的时候了,在控制器中新建方法,记得要引入导出脚本哦。use App\Exports\FinancialProjectExport;public function exportLists(Request $request){$data = Project::ofQuery($request->all())->get()->toArray(); // 查询要导出的数据return new FinancialProjectExport($data); // 只需要把要导出的数据传到脚本中,就不导出excel了。}

  相关解决方案