导出为 csv 时不计算公式

Dan*_*iel 2 php excel phpexcel laravel laravel-excel

我有这个 Excel 文件 ( .xlsx):

+---+-------+
|   |   A   |
+---+-------+
| 1 | 1     |
| 2 | =A1+1 |
| 3 | =2*3  |
+---+-------+
Run Code Online (Sandbox Code Playgroud)

在 Laravel 中,我配置了这段代码来显示内容

return Excel::load(base_path() . '/test.xlsx')->string('csv');
Run Code Online (Sandbox Code Playgroud)

它返回单元格的文本:"1","=A1+1","=3*2"

我想要的是计算值,但格式相同:"1","2","6"

代码

return Excel::load(base_path() . '/test.xlsx')->get();
Run Code Online (Sandbox Code Playgroud)

返回正确的计算数据,但格式错误。

ale*_*ino 5

有一个选项正是用于此目的。您可能有一个配置文件config/excel.php(如果不只是这样做php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider")。看一下export数组,其中包含以下选项:

    /*
    |--------------------------------------------------------------------------
    | Pre-calculate formulas during export
    |--------------------------------------------------------------------------
    */
    'calculate'                   => false,
Run Code Online (Sandbox Code Playgroud)

将其设置为 true 就可以了。