【发布时间】:2022-01-21 07:06:13
【问题描述】:
我正在使用 maatwebsite laravel excel 将一些数据从 excel 导入数据库。但我想为每行数据添加一些具有增量值的自定义 ID。 目前,我可以将数据与一些输入值形式一起导入。
数据导入文件
class DataImport implements ToModel, WithStartRow{
public function model(array $row)
{
return new Tempdat([
'employee_id' => ??? (combination of client_code +1)
'name' => $row[1],
'gender' => $row[2],
'bod' => $this->transformDate($row[3]),
'engagement_code' => request('engagement_code'), //from input form
'client_code' => request('client_code'), //from input form
]);
}
public function transformDate($value, $format = 'Y-m-d')
{
try {
return \Carbon\Carbon::instance(\PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($value));
} catch (\ErrorException $e) {
return \Carbon\Carbon::createFromFormat($format, $value);
}
}
public function startRow(): int
{
return 2;
} }
数据控制器文件
public function ImportExcel(Request $request)
{
$this->validate($request,[
'file' => 'required|mimes:xls,xlsx',
'engagement_code' => 'required',
]);
$file = $request->file('file');
$clientCode = request('client_code');
$engagementCode = request('engagement_code');
$todayDate = date('dFY');
$file_name = $engagementCode.'_'.$todayDate.$file->getClientOriginalName();
$file->move('tempdat',$file_name);
Excel::import(new DataImport, public_path('/tempdat/'.$file_name));
return redirect()->route('dashboard.tempdat.index');
}
我想做的是为每一行添加“员工代码”,它是“client_code”+ 1 的组合。例如,如果 client_code 是 ABCD 并且导入了 3 行数据,那么 employee_code 将是:
- ABCD0001
- ABCD0002
- ABCD0003
- ...
我已经在搜索计数行,但还没有找到。
【问题讨论】: