好的,所以我尝试使用 Laravel 5.7 和 Laravel Excel 3.1 将 xlsx 文件导入到我的数据库中。导入有效,但不幸的是我有来自其他来源的文件,并且单元格中有公式。我的问题是,我导入这个文件,它可以工作,但我看到的值是它自己的公式:
"=_xlfn.IFNA(VLOOKUP(F13,数据!C26:E92,3,0),"")"
应该是:
国家
我必须看到数值而不是公式。 我尝试将计算选项更改为 False 或 True,但没有任何改变。
有人可以帮我吗?
UsersImport.php 文件:
namespace App\Imports;
use App\Form;
use Maatwebsite\Excel\Concerns\ToArray;
use Maatwebsite\Excel\Concerns\Importable;
use Maatwebsite\Excel\Concerns\WithMappedCells;
class UsersImport implements WithMappedCells,
ToArray
{
/**
* @param array $row
*
* @return \Illuminate\Database\Eloquent\Model|null
*/
use Importable;
public function mapping(): array
{
return [
'campaign_name' => 'F11',
'country' => 'F12',
'language' => 'F15',
'region' => 'F17',
'ms_region' => 'F19',
'retailer_name' => 'F21',
'start_date' => 'F23',
'end_date' => 'F25',
'quarter' => 'F27',
'campaign_market' => 'F29',
'campaign_execution_type' => 'F31',
'reimbursement' => 'F33',
];
}
public function array(array $row)
{
return [
'campaign_name' => $row['campaign_name'],
'country' => $row['country'],
'language' => $row['language'],
'region' => $row['region'],
'ms_region' => $row['ms_region'],
'retailer_name' => $row['retailer_name'],
'start_date' => $row['start_date'],
'end_date' => $row['end_date'],
'quarter' => $row['quarter'],
'campaign_market' => $row['campaign_market'],
'campaign_execution_type' => $row['campaign_execution_type'],
'reimbursement' => $row['reimbursement'],
];
}
}
MyController 文件:
public function import(Request $request)
{
$data = [];
$this->validate($request, array(
'file' => 'required'
));
if($request->hasFile('file')){
$extension = File::extension($request->file->getClientOriginalName());
if ($extension == "xlsx" || $extension == "xls" || $extension == "csv" || $extension == "xlsm") {
$name = $request->file->getClientOriginalName();
$data = (new UsersImport)->toArray($name);
dd($data);
return redirect('/');
}
}else {
Session::flash('error', 'File is a '.$extension.' file.!! Please upload a valid xls/csv file..!!');
return back();
}
}
}
尝试
use Maatwebsite\Excel\Concerns\WithCalculatedFormulas;
于 UsersImport.php
给所有困惑的人。
您需要在
WithCalculatedFormulas
部分中使用use
并在class
中实现它:
MyImportClass.php
namespace App\Imports;
[...]
use Maatwebsite\Excel\Concerns\WithCalculatedFormulas;
class MyImportClass implements WithCalculatedFormulas
{
[...]
}