0

我正在使用 PHPExcel 读取 excel 值。

我用过

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

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

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

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

getCalculatedValue()用过方法怎么用rangeToArray()

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

例如:假设excel有3列,即AB 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。

计算公式有什么问题??

4

1 回答 1

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
 */
于 2013-11-08T20:53:33.770 回答