PHPExcel单元格的实际值

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

我正在使用PHPExcel读取Excel值。

我用过

$values = $objPHPExcel->getActiveSheet()->rangeToArray('A2:G7');

从A2到G7读取值。正确读取值,但问题出在G列中。它具有通过公式计算出的值。因此,每当我从G列中读取值时,我都无法获得单元格中的实际值。我得到其他一些价值(可能是我的代码考虑公式并在内部执行)。

在寻找解决方案时,我注意到使用getCalculatedvalue()可以得到实际值。

如何避免公式并从单元格中获取实际值?

使用getCalculatedValue()方法后如何使用rangeToArray()

根据API文档,即此方法的第3个参数为布尔值,TRUE-计算值,FALSE-公式。我得到的结果正确,但是我的问题是,当公式使用空单元格的值时,我没有得到正确的结果。

例如:假设excel具有3列,即A B C。

我的公式是C2 = C1 + B2,C3 = C2 + B3。这里C1 =空单元格。

A        B      C
EMPTY  EMPTY   EMPTY
2        3     3 (C1 + B2)
4        5     8 (C2 + B3)

在这种情况下,我得到C2 = 0和C3 = 5。

计算公式有什么问题?

phpexcel
1个回答
0
投票

传递给rangeToArray()的第三个参数是一个布尔值,指示该方法是应计算公式并返回结果,还是返回公式本身:默认值为true;否则为false。但是如果将该参数设置为false,则不会执行任何计算。

这在API文档中有记录:

/**
 * Create array from a range of cells
 *
 * @param   string   $pRange             Range of cells (i.e. "A1:B10"), or just one
 *                                           cell (i.e. "A1")
 * @param   mixed    $nullValue          Value returned in the array entry if a cell
 *                                           doesn't exist
 * @param   boolean  $calculateFormulas  Should formulas be calculated?
 * @param   boolean  $formatData         Should formatting be applied to cell values?
 * @param   boolean  $returnCellRef      False - Return a simple array of rows and
 *                                               columns indexed by number counting
 *                                               from zero
 *                                       True - Return rows and columns indexed by
 *                                              their actual row and column IDs
 * @return  array
 */
© www.soinside.com 2019 - 2024. All rights reserved.