excel - 《maatwebsite/excel 3.1》 导入导出excel时如何过滤excel的标题
问题描述
我想将 excel 导入 mysql 这是我的 excel 格式 在此处输入图像描述
但我发现我无法过滤这个excel的标题“name”&&“id_number”这是我第一次使用“maatwebsite/excel”3.1我不知道如何使用
请帮助我谢谢这是我的代码
namespace App\Imports;
use App\Models\Person;
use Maatwebsite\Excel\Concerns\ToModel;
class PersonImport implements ToModel
{
/**
* @param array $row
*
* @return \Illuminate\Database\Eloquent\Model|null
*/
public function model(array $row)
{
return new Person([
'name' => $row[0],
'id_number' => $row[1],
'status' => 1
]);
}
}
这是我的控制器功能
$import = new PersonImport;
$result = Excel::import($import, $request->file('file'));
解决方案
您可以实现 WithHeadingRow
https://docs.laravel-excel.com/3.1/imports/heading-row.html#heading-row
您的代码将是:
namespace App\Imports;
use App\Models\Person;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
class PersonImport implements ToModel, WithHeadingRow
{
/**
* @param array $row
*
* @return \Illuminate\Database\Eloquent\Model|null
*/
public function model(array $row)
{
return new Person([
'name' => $row['name'],
'id_number' => $row['id_number'],
'status' => 1
]);
}
}
推荐阅读
- java - 还有没有办法在 OSX 10.11.6 上安装 xvfb,
- javascript - Mineflayer:让机器人只回复一次
- angular - 更新firebase后,垫子对话框重新打开
- ios - How to get a diffable snapshot from an NSFetchResultsController in iOS 13?
- java - grpc-dotnet 向后兼容性
- gnuplot - Gnuplot:如何在任意点绘制切线到曲线?
- python - 如何调整 KivyMD 标签内容的大小?
- bash - 使用 sed 将一些小写字母替换为大写
- javascript - 显示用户在搜索栏中输入的某个数据库字段中的数据
- python-3.x - 通过 cloudtrail 分页时刷新 boto3 会话