zoukankan      html  css  js  c++  java
  • 一次奇特的导表错误解决:Xlsx::getArrayItem(): Node no longer exists

    各种谷歌百度都没人能解决,一度怀疑是不是包的版本错误了,各种回滚包版本,断点调试,然而没什么卵用。。。后来终于在阿赖耶识的指引下搞定了,贴出来也造福一下别人~

    场景

    我们有一个导入表格的功能,是为了给【泽维尔天才青少年学校】的X战警新成员开课用的。

    正常导入的表格是这个样子的

    这里有一行数据,为了给金刚狼开课,让他能跟X教授欢乐的学习。

    异常

    但是,有人在里边加入了迪迦奥特曼图片!!!

    我们都知道迪迦奥特曼和我们的X战警不是一个次元的,奥特曼怎么能当X战警呢???没法这么开课!!!

    于是在导表过程就抛出了一个这样的异常

    PhpOfficePhpSpreadsheetReaderXlsx::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);
    
  • 相关阅读:
    模板
    常用文件的位置
    前端基础之JavaScript
    CSS属性相关
    前端之CSS
    jQuery方法及使用
    前端-HTLM
    前端之BOM与DOM-JQuery
    视图-触发器-事务-存储过程-函数
    Navicat-pymysql-sql注入问题
  • 原文地址:https://www.cnblogs.com/chenqionghe/p/14485283.html
Copyright © 2011-2022 走看看