解决PHPExcel的Notice:Undefined offset 15问题

在使用PHPExcel批量导入较大数据的时候,可能会出现类似警告:

Notice: Undefined offset: 15 at Classes/PHPExcel/Reader/Excel5.php at line xxxx

如果是在CakePHP框架中使用PHPExcel,则警告类似如下:

Notice (8): Undefined offset: 15 [ROOT\vendor\phpoffice\phpexcel\Classes\PHPExcel\Reader\Excel5.php, line 3485]

此处CakePHP的版本是3.5,PHPExcel的版本是1.8

按警告提示信息,按路径找到Excel5.php文件的第3485行,发现该警告是由于调用setXfIndex($this->_mapCellXfIndex[$xfIndex])方法导致的。
可按照以下方式解决该问题:

//源代码
$this->_phpSheet->getColumnDimensionByColumn($i)->setXfIndex($this->_mapCellXfIndex[$xfIndex]);

//修改为
if(isset($this->_mapCellXfIndex[$xfIndex])) {
	$this->_phpSheet->getColumnDimensionByColumn($i)->setXfIndex($this->_mapCellXfIndex[$xfIndex]);
}

如果警告提示的是其他行数,解决思路一致。

参考资料:https://github.com/restyler/PHPExcel/commit/160a2d5e1055cf0b47d4b6b8797ae09a0353e329

©️2020 CSDN 皮肤主题: 鲸 设计师:meimeiellie 返回首页