[英]PHPExcel excel read is not working for some cells with calculation
我使用PHPExcel lib读取Codeigniter项目中的excel文件。 它不读取某些带有计算的单元格。 它显示为#VALUE!
但是一些计算值正在同一张Excel表中读取。 这些细胞怎么了?
具有以下计算的单元格未读取
=+D109*1000
=+B16/B13
=+D23/$D$109
具有以下计算的单元格正在读取
=+B10-B11
=+C10-C11
但是所有单元格都在读取一些excel表。 xlsx格式附带此问题
这是我的代码
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);
$this->excel = $objReader->load($path);
$this->excel->setActiveSheetIndex($sheet);
$data = $this->excel->getActiveSheet()->toArray(null, true, true, true);
print_r($data);
我向谷歌查询。 getCalculatedValue()
应该用于读取计算值。 但是我不能一一使用。 是否有一种将所有工作表读取为数组的方法?
我如何通过以下方式检查一些单元格
$this->excel->getActiveSheet()->getCell('B18')->getCalculatedValue() // return #VALUE!
$this->excel->getActiveSheet()->getCell('B18')->getOldCalculatedValue() //return 0.4211
我如何使用toArray使用旧的计算值?
最后,我使用循环获取了旧的getOldCalculatedValue。
$data = $this->excel->getActiveSheet()->toArray(null, true, true, true);
//This code add for some calculated cells were not reading in xlsx format
foreach ($data as $no => $row) {
foreach ($row as $key => $value) {
if (isset($value) && $value == '#VALUE!') {
$data[$no][$key] = $this->excel->getActiveSheet()->getCell($key.$no)->getOldCalculatedValue();
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.