【问题标题】:PHPExcel CyclicReferenceStack not found未找到 PHPExcel CyclicReferenceStack
【发布时间】:2014-03-04 15:44:09
【问题描述】:

我刚刚将 PHPExcel 升级到最新版本。在我的代码中,我调用 $objPHPExcel = PHPExcel_IOFactory::load($file['tmp_name']); 对于上传的 xlsx 文件。我收到此错误:致命错误:第 1733 行的 /home/rrd/public_html/laksmi/app/Vendor/PHPExcel/Calculation.php 中找不到类 'PHPExcel_CalcEngine_CyclicReferenceStack'

我试图删除所有公式,但只有一张表,我得到了同样的错误。我该如何解决这个问题?

【问题讨论】:

  • 您在加载文件时当然不应该出现该错误,因为加载文件代码中的任何内容都不应引用计算引擎....您的代码是否与文件有任何其他关系?跨度>
  • Mark:不,错误就在这一行。在此之前,我只是导入 PHPExcel 库。这是堆栈: 7 0.0897 1212704 ImportsController->excelImport( ) ../ImportsController.php:33 8 0.0905 1259808 PHPExcel_IOFactory::load( ) ../ImportsController.php:595 9 0.0920 1299072 PHPExcel_Reader_Excel2007->load( ) . /IOFactory.php:192 10 0.0920 1299340 PHPExcel->__construct() ../Excel2007.php:351 11 0.0928 1463272 PHPExcel_Calculation::getInstance()../PHPExcel.php:360 12 0.0932 1467016 PHPExcel_Calculation->__construct()。 ./Calculation.php:1767
  • 你能告诉我 PHPExcel 的版本吗.....我对代码非常了解,并且知道它在读取过程中的任何时候都不应该调用计算引擎;但它看起来像一个损坏的自动加载器,或者您正在使用非 SPL 注册的自动加载器和 PHPExcel,或者您没有所有 PHPExcel 类文件
  • 是1.8.0。我今天从官网下载,我覆盖了我以前的 PHPExcel 库。当它不起作用时,我再次下载并覆盖。
  • 尝试复制....您还有其他自动加载器吗?

标签: phpexcel


【解决方案1】:

有同样的错误!只需制作整个文件夹 777 的 chmod 并再次工作 因为也许您覆盖了已设置正确权限的旧文件夹,但 calcengine 文件夹是新的!

【讨论】:

    【解决方案2】:

    从旧版本的 PHPExcel 更新后,我看到了同样的错误。

    1. 重命名旧目录(作为方便的备份)。
    2. 将最新源添加为新目录,并使用原始文件夹名称。
    3. 在本地测试,没有发现任何问题。
    4. 已将更改提交到 git(git commit -A 用于跟踪和未跟踪的文件)。
    5. 将 git 存储库推送到我的生产环境。
    6. “找不到类 'PHPExcel_CalcEngine_CyclicReferenceStack'”消息在生产中

    经过一些快速调试后,我发现在步骤#1 和#2 中换出文件后的 git commit 没有捕获 PHPExcel 的较新的 CalcEngine 目录。不知道为什么会这样,但我运行了另一个 git commit -A 并且它似乎正确同步。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-25
      • 1970-01-01
      • 1970-01-01
      • 2012-02-07
      • 1970-01-01
      相关资源
      最近更新 更多