【问题标题】:How to get calculated value from cell formula in Maatwebsite Laravel Excel?如何从 Maatwebsite Laravel Excel 中的单元格公式中获取计算值?
【发布时间】:2020-06-11 02:40:53
【问题描述】:

在 excel 中,我有 3 列名为 TotalPayment ReleasedPayment Return。为了计算Payment Return,我在其中添加了一个公式=U2-G2

注意:U2 是Payment Released,G2 是Total

我已经阅读了Maatwebsite Laravel Excel的文档,用于从excel导入数据库,并且数据插入成功。但是当我检查数据库时,payment_return 列全部由零填充0。当我执行dd($row['Payment Return'] 时,它显示的不是它在 excel 中包含的值,而是公式本身。

请问我该如何解决?

P.S:也看过this,但是不知道import.php文件在哪里,函数应该写在哪里?

提前致谢!

【问题讨论】:

  • 嘿伙计,你解决了吗?有同样的问题
  • 检查我的答案,谢谢。希望你的代码运行良好?????????

标签: php mysql excel laravel laravel-excel


【解决方案1】:

文档很糟糕,但找到了解决方法: 添加

use Maatwebsite\Excel\Concerns\WithCalculatedFormulas;

class MyCustomImport implements WithCalculatedFormulas

现在在导入时计算 Imports/MycustomImports.php 文件和公式,因此我们得到实际值。

【讨论】:

  • 补充一点,如果你使用toArray处理数据,你需要指定calculateFormulas: true参数,否则dd仍然会显示公式。 $row->toArray(null, true);toArray的来源:public function toArray($nullValue = null, $calculateFormulas = false, $formatData = true, ?string $endColumn = null)
【解决方案2】:

我还没有找到正确的答案,但我正在生产中,所以我采取了另一种方式。我在我的 PHP 文件中插入了 excel 中的值并手动计算了它。好像

$valOne = $row['cell_U2'];

$valTwo = $row['cell_G2'];

$result = $valOne-$valTwo;

变量$result 是我插入到数据库中的。这样可以在excel中改用公式,但系统不会考虑。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多