PHPExcel单元格的实际值

时间:2013-11-08 10:24:51

标签: phpexcel

我正在使用phpexcel来读取excel值。

我用过

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

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

在搜索解决方案时,我注意到通过使用getCalculatedvalue(),我可以获得实际值。

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

当我使用rangeToArray()方法时如何使用getCalculatedValue()???

根据API文档,即此方法的第三个参数是boolean,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.

计算公式有什么不对?

1 个答案:

答案 0 :(得分:0)

传递给rangeToArray()的第三个参数是一个布尔值,指示方法是否应该计算公式并返回结果,或者返回公式本身:默认为true;但如果将该参数设置为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
 */