PHPExcel - 如何在不首先使用 setCellValue() 插入公式的情况下根据 excel sheet 中的数据计算值?

PHPExcel - How to calculate a value based on the data from an excel sheet without using setCellValue() to insert a formula in the first place?

我做了很多研究,但找不到真正的答案。

我使用 PHPExcel 从 excel sheet 中读取原始数据。它工作正常。现在我需要从单元格 A1A500 得到一个 SUM,即 SUM(A1:A500)。为此,我了解我需要:

我的问题是,有没有什么方法可以在不需要首先将公式插入单元格的情况下获得 $sum?换句话说,在没有步骤1的情况下实现步骤2的结果。因为我不想add/change/edit任何东西到原来的excel sheet上。非常感谢。

我刚刚 运行 对此进行了一些测试。

虽然您不需要读取包含公式的单元格...您可以使用计算引擎本身执行公式...但您仍然需要传递单元格引用(可以是任何单元格在工作表中;我在这里使用了 A1,因为 A1 应该始终存在)到计算引擎:

(假设 $objPHPExcel 是您从文件加载的 PHPExcel 对象)

$formula = '=SUM(A1:A500)';
$sum = PHPExcel_Calculation::getInstance(
    $objPHPExcel
)->calculateFormula($formula, 'A1', $objPHPExcel->getActiveSheet()->getCell('A1'));

或直接使用您的$sheet1

$formula = '=SUM(A1:A500)';
$sum = PHPExcel_Calculation::getInstance(
    $sheet1->getParent()
)->calculateFormula($formula, 'A1', $sheet1->getCell('A1'));