我正在使用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.
计算公式有什么不对?
答案 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
*/