laravel excel 3.1导入值而不是公式

问题描述 投票:0回答:2

好的,所以我尝试使用 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();
        }
    }
}
php excel laravel laravel-5 phpexcel
2个回答
9
投票

尝试

use Maatwebsite\Excel\Concerns\WithCalculatedFormulas;
UsersImport.php


0
投票

给所有困惑的人。

您需要在

WithCalculatedFormulas
部分中使用
use
并在
class
中实现它:

MyImportClass.php

namespace App\Imports;

[...]
use Maatwebsite\Excel\Concerns\WithCalculatedFormulas;

class MyImportClass implements WithCalculatedFormulas
{
     [...]
}

© www.soinside.com 2019 - 2024. All rights reserved.