我有一张带有多个标签的Excel工作表。第一个选项卡是在其他选项卡中找到的信息摘要。我需要阅读该标签。
首先,我在计算方面遇到了很多问题,但显然新版本中存在错误,现在我按建议here使用getOldCalculatedValues()
。
现在情况好多了,但我仍有两个值无法通过,而是抛出一个#DIV/0!
这是我的代码:http://codepad.org/JWNhwyG5
摘要标签(红线就是那些):
=Expenditure!C36
' =Expenditure!D36
' 摘要标签:
这是标签'支出'。
这是C117:
答案 0 :(得分:0)
问题可能是您的代码显示您正在应用读取过滤器,因此只有单元A3:D60
被加载到PHPExcel中。引用该范围之外的单元格的任何公式(例如C117
)将无法检索要在计算中使用的该单元格的值,因此它将被视为空单元格。
C36 = C35 / C117
=> 15770000 / NULL
=> #DIV/0
我建议您不要应用读取过滤器,但要将整个电子表格加载到PHPExcel中,或至少扩展读取过滤器的范围,以便它确实包含所有相关单元格和所有相关内容工作表,以便您可以在计算中使用单元格C117。
您无需使用getOldCalculatedValue()
,也可以
$arrFatalError = array();
$objReader = PHPExcel_IOFactory::createReader("Excel2007");
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load("/excel/myfile.xlsx");
$sheetData = $objPHPExcel->getSheetByName("summary")
->rangeToArray('A3:D60', null,true,true,true);