各種谷歌百度都沒人能解決,一度懷疑是不是包的版本錯誤了,各種回滾包版本,斷點調試,然而沒什么卵用。。。后來終於在阿賴耶識的指引下搞定了,貼出來也造福一下別人~
場景
我們有一個導入表格的功能,是為了給【澤維爾天才青少年學校】的X戰警新成員開課用的。
正常導入的表格是這個樣子的
這里有一行數據,為了給金剛狼開課,讓他能跟X教授歡樂的學習。
異常
但是,有人在里邊加入了迪迦奧特曼圖片!!!
我們都知道迪迦奧特曼和我們的X戰警不是一個次元的,奧特曼怎么能當X戰警呢???沒法這么開課!!!
於是在導表過程就拋出了一個這樣的異常
PhpOffice\PhpSpreadsheet\Reader\Xlsx::getArrayItem(): Node no longer exists
這是由包PhpSpreadsheet的下面這行代碼引起的
$objRead = IOFactory::createReader($fileType);
$spreadsheet = $objRead->load($filePath);
在$objRead->load
這個地方拋異常了。
解決
在$objRead->load($filePath)
之前加上只讀$objRead->setReadDataOnly(true)
$objRead = IOFactory::createReader($fileType);
$objRead->setReadDataOnly(true);
$objRead->load($filePath);