You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Laravel Maatwebsite仅导入第2行的表头数据

解决方案

Laravel Maatwebsite 提供的默认HeadingRowImport默认读取第1行作为表头,要修改为读取第2行,可参考以下两种实现方式:

方案1:自定义导入类(推荐,兼容性最好)

  • 第一步:创建自定义导入类 app/Imports/SecondRowHeadingImport.php,代码如下:
<?php

namespace App\Imports;

use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Imports\HeadingRowImport as BaseHeadingRowImport;

class SecondRowHeadingImport extends BaseHeadingRowImport implements WithHeadingRow
{
    /**
     * 指定表头所在行号,行号从1开始计数
     */
    public function headingRow(): int
    {
        return 2;
    }
}
  • 第二步:修改控制器中原有代码,替换为自定义的导入类即可:
HeadingRowFormatter::default('none');
// 调用自定义的导入类读取表头
$headings = (new \App\Imports\SecondRowHeadingImport)->toArray($request['student_upload_file']);

方案2:直接读取行数组取值(无需额外创建类,适合临时使用)

直接读取文件所有行,按数组索引取第二行(数组从0开始计数,第二行对应索引1):

$allRows = \Maatwebsite\Excel\Facades\Excel::toArray([], $request['student_upload_file']);
// 此处$allRows[0]对应第一个工作表,如有多工作表需求可修改对应索引
$headings = $allRows[0][1] ?? [];

内容的提问来源于stack exchange,提问作者Alan Jose

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 18:45:06