版权声明:本文为博主原创文章,可以转载,但请添加原文链接。 https://blog.csdn.net/hwhsong/article/details/86601394
在使用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