如何使用PHPExcel自动读取计算值?答:
我有以下Excel文件:
我通过循环访问每个单元格并获取以下值来读取它:getCell(...)->getValue()
$highestColumnAsLetters = $this->objPHPExcel->setActiveSheetIndex(0)->getHighestColumn(); //e.g. 'AK'
$highestRowNumber = $this->objPHPExcel->setActiveSheetIndex(0)->getHighestRow();
$highestColumnAsLetters++;
for ($row = 1; $row < $highestRowNumber + 1; $row++) {
$dataset = array();
for ($columnAsLetters = 'A'; $columnAsLetters != $highestColumnAsLetters; $columnAsLetters++) {
$dataset[] = $this->objPHPExcel->setActiveSheetIndex(0)->getCell($columnAsLetters.$row)->getValue();
if ($row == 1)
{
$this->column_names[] = $columnAsLetters;
}
}
$this->datasets[] = $dataset;
}
但是,尽管它在数据中读取得很好,但它在计算中按字面意思读取:
我从像这样的讨论中了解到,我可以将其用于计算单元格。getCalculatedValue()
问题是,在我正在导入的Excel工作表中,我事先不知道哪些单元格被计算,哪些没有计算。
有没有办法让我读取单元格的值,如果它具有简单值,则自动获取该值,如果它是计算,则获取计算结果?
答:
事实证明,它适用于所有单元格,让我想知道为什么这不是默认值,因为我认为人们通常会想要计算的值而不是方程本身,无论如何这都有效:getCalculatedValue()
getValue()
...->getCell($columnAsLetters.$row)->getCalculatedValue();