一次奇特的導表錯誤解決:Xlsx::getArrayItem(): Node no longer exists


各種谷歌百度都沒人能解決,一度懷疑是不是包的版本錯誤了,各種回滾包版本,斷點調試,然而沒什么卵用。。。后來終於在阿賴耶識的指引下搞定了,貼出來也造福一下別人~

場景

我們有一個導入表格的功能,是為了給【澤維爾天才青少年學校】的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);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM