【发布时间】:2015-04-30 11:39:18
【问题描述】:
我有一个 mime 类型为“application/octet-stream; charset=binary”且扩展名为“.xlsx”的文件。 PHPExcel_IOFactory::identify($this->file) 返回“Excel2007”。我这样创建我的阅读器:
$this->objectReader = PHPExcel_IOFactory::createReaderForFile($this->file);
当我尝试使用公式获取单元格值时,我只能通过两种方式进行:
1)$sheet->getCell($columns[$i].$row->getRowIndex())->getValue()
//return the actual formula as a string
2)$sheet->getCell($columns[$i].$row->getRowIndex())->getOldCalculatedValue()
//returns the oldCalculated value which is not always corret (for example the value in the cell is 17.4% and it returns 0.17)
当我转储 $sheet->getCell($columns[$i].$row->getRowIndex()) 对象时,输出以休闲开始:
object(PHPExcel_Cell)[142370]
private '_value' => string '=IFERROR(IF(C$6="yes",IF(ISBLANK(INDIRECT(ADDRESS($AN15,MATCH($B$6,INDIRECT("'"&C$7&"'!"&$AN$9-1&":"&$AN$9-1),0),,,C$7),TRUE)),"",INDIRECT(ADDRESS($AN15,MATCH($B$6,INDIRECT("'"&C$7&"'!"&$AN$9-1&":"&$AN$9-1),0),,,C$7),TRUE)),""),"")' (length=231)
private '_calculatedValue' => float 0.1744360902255639
private '_dataType' => string 'f' (length=1)
private '_parent' =>...
正确的值在那里,但我无法访问它... 当我尝试使用 getFormattedValue() 或 getCalculatedValue() 获取单元格值时,输出是致命错误:
Catchable fatal error: Argument 2 passed to PHPExcel_Calculation_LookupRef::INDIRECT() must be an instance of PHPExcel_Cell, boolean given
知道如何解决这个问题吗?我真的被困住了,不知道。谢谢。
【问题讨论】: