laravel - 导入文件时如何跳过第一行
问题描述
我正在尝试使用3.1版导入 5.7版.xlsx
中的文件。我想要实现的是跳过文件的第一行以避免在我的数据库中导入列标题。Laravel
Maatwebsite-excel
我尝试使用版本 2 语法,调用该skip()
方法。
public function voter_import(Request $request)
{
if (empty($request->file('file')->getRealPath()))
{
return back()->with('success','No file selected');
}
else
{
Excel::import(new VotersImport, $request->file('file'))->skip(1);
return response('Import Successful, Please Refresh Page');
}
}
class VotersImport implements ToModel
{
public function model(array $row)
{
return new Voter([
'fname' => $row[0],
'lname' => $row[1],
'phone' => $row[2],
'gender' => $row[3],
'state' => $row[4],
'occupation' => $row[5],
'address' => $row[6],
'vin' => $row[7],
'dob' => $row[8],
'campaign_id' => $row[9],
]);
}
}
错误信息:
Call to undefined method Maatwebsite\Excel\Excel::skip()
解决方案
你可以实现StartingRow
use Maatwebsite\Excel\Concerns\WithStartRow;
class VotersImport implements ToModel, WithStartRow
{
/**
* @return int
*/
public function startRow(): int
{
return 2;
}
}
另一种选择是使用 HeadingRow https://docs.laravel-excel.com/3.1/imports/heading-row.html
推荐阅读
- r - R - 创建for循环替换随机整数的负值,并计算负值
- .net - 使用 Azure Active Directory B2C 构建云解决方案
- javascript - PEG js:如何在 peg js 语法规则表达式中匹配单引号内的字符串?
- docker - Docker via snap - 安装一年后无法连接到 Docker 守护进程
- azure - 用自定义名称替换 kubernetes 中的 IP 地址
- python - 根据日期列删除行 [Pandas]
- python - 将 pandas 数据框转换为嵌套 json
- python - 工厂模式中的烧瓶无法通过启动应用程序在现有数据库中找到用户表
- java - 有没有办法提取 Mapstruct 映射?
- python - 如何在 Python 或 R 中将 TAR 文件解压缩为 TXT(读取 CEL 文件)