在 Laravel/Cyber-duck excel 中获取 Excel 文件的特定单元格值
Get specific cell values of Excel file in Laravel/Cyber-duck excel
目前,我可以从 excel 这种格式的文件中获取数据。
这是我的工作代码。
$validator = Validator::make(
[
'file' => $request->file,
'extension' => strtolower($request->file->getClientOriginalExtension()),
],
[
'file' => 'required|max:5000',
'extension' => 'required|in:,csv,xlsx,xls',
]
);
$modal = "active";
if($validator->fails()){
return redirect()
->back()
->with(['errors'=>$validator->errors()->all()])
->with('modal',$modal);
}
$dateTime = date('Ymd_His');
$file = $request->file('file');
$fileName = $dateTime . '-' . $file->getClientOriginalName();
$savePath = public_path('/upload/projectlist/');
$file->move($savePath, $fileName);
$excel = Importer::make('Excel');
$excel->hasHeader(true);
$excel->load($savePath.$fileName);
$collection = $excel->getCollection();
if(sizeof($collection[1]) == 5)
{
$arr = json_decode($collection,true);
foreach ($arr as $row) {
$insert_data[] = array(
'first_name' => $row['first_name'],
'last_name' => $row['last_name'],
'email' => $row['email'],
'birthdate' => $row['birthdate']['date'],
'created_at' => now(),
'updated_at' => now(),
);
}
DB::table('tbl_sampleimport')->insert($insert_data);
}
else
{
return redirect()
->back()
->with(['errors'=> [0=> 'Please provide date in file according to your format.']])
->with('modal',$modal);
}
return redirect()->back()
->with(['success'=>'File uploaded successfully!'])
->with('modal',$modal);
现在格式已更改。添加了一些具有单一值的字段。喜欢 Project Name
和 Project Date
我试图获得它的价值。只想获取值但没有必要将其也保存到数据库中。
如何获取 Project Name
和 Project Date
的值以声明为变量。并且仍然能够保存 j.doe17
和 j.doe18
的数据 ?
我正在使用 cyber-duck 作为我的 laravel/excel 进行导入等等。
@Dhaval Purohit 建议的解决方案
创建 sheet 并定义 setSheet($sheetNumber)
。
所以我尝试在同一个 excel 文件中仅使用这种格式创建新的 sheet
这会给我这样的结果
[{
"project_name":"Creator Doe",
"project_date":"7/9/2019"
}]
目前,我可以从 excel 这种格式的文件中获取数据。
这是我的工作代码。
$validator = Validator::make(
[
'file' => $request->file,
'extension' => strtolower($request->file->getClientOriginalExtension()),
],
[
'file' => 'required|max:5000',
'extension' => 'required|in:,csv,xlsx,xls',
]
);
$modal = "active";
if($validator->fails()){
return redirect()
->back()
->with(['errors'=>$validator->errors()->all()])
->with('modal',$modal);
}
$dateTime = date('Ymd_His');
$file = $request->file('file');
$fileName = $dateTime . '-' . $file->getClientOriginalName();
$savePath = public_path('/upload/projectlist/');
$file->move($savePath, $fileName);
$excel = Importer::make('Excel');
$excel->hasHeader(true);
$excel->load($savePath.$fileName);
$collection = $excel->getCollection();
if(sizeof($collection[1]) == 5)
{
$arr = json_decode($collection,true);
foreach ($arr as $row) {
$insert_data[] = array(
'first_name' => $row['first_name'],
'last_name' => $row['last_name'],
'email' => $row['email'],
'birthdate' => $row['birthdate']['date'],
'created_at' => now(),
'updated_at' => now(),
);
}
DB::table('tbl_sampleimport')->insert($insert_data);
}
else
{
return redirect()
->back()
->with(['errors'=> [0=> 'Please provide date in file according to your format.']])
->with('modal',$modal);
}
return redirect()->back()
->with(['success'=>'File uploaded successfully!'])
->with('modal',$modal);
现在格式已更改。添加了一些具有单一值的字段。喜欢 Project Name
和 Project Date
我试图获得它的价值。只想获取值但没有必要将其也保存到数据库中。
如何获取 Project Name
和 Project Date
的值以声明为变量。并且仍然能够保存 j.doe17
和 j.doe18
的数据 ?
我正在使用 cyber-duck 作为我的 laravel/excel 进行导入等等。
@Dhaval Purohit 建议的解决方案
创建 sheet 并定义 setSheet($sheetNumber)
。
所以我尝试在同一个 excel 文件中仅使用这种格式创建新的 sheet
这会给我这样的结果
[{
"project_name":"Creator Doe",
"project_date":"7/9/2019"
}]