首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有Yii的Autoload PHPExcel库(包含(PHPExcel_Worksheet_Drawing.php):未能打开流:没有此类文件或目录)

问带有Yii的Autoload PHPExcel库(包含(PHPExcel_Worksheet_Drawing.php):未能打开流:没有此类文件或目录)
EN

Stack Overflow用户
提问于 2014-01-21 07:33:13
回答 2查看 1.9K关注 0票数 0

我使用的是Yii框架,我必须加载PHPExcel类。

在我的main.php中,我将配置设置为

代码语言:javascript
复制
'import'=>array(
        'application.models.*',
        'application.components.*',
                'application.extensions.*',
                'ext.PHPExcel.PHPExcel',            
    ),

在Autoloader.php中,我编辑了寄存器函数,如下所示

代码语言:javascript
复制
public static function Register() {
        $functions = spl_autoload_functions();

          foreach($functions as $function)
            spl_autoload_unregister($function);
          $functions=array_merge(array(array('PHPExcel_Autoloader', 'Load')), $functions);

          foreach($functions as $function)
            $x = spl_autoload_register($function);
          return $x;
  }

当我打电话给$objPHPExcel =new PHPExcel();的时候,它工作得很好,

但当我称$objDrawing = new PHPExcel_Worksheet_Drawing();为回报时

代码语言:javascript
复制
include(PHPExcel_Worksheet_Drawing.php): failed to open stream: No such file or directory

我的目录结构是:

代码语言:javascript
复制
extensions
    -----PHPExcel
          -------PHPExcel
    ------ PHPExcel.php

谢谢你的帮助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-21 08:26:20

如果此代码有效,请注意有双*

代码语言:javascript
复制
Yii::import('ext.PHPExcel.**', true); 

$objDrawing = new PHPExcel_Worksheet_Drawing();
var_dump($objDrawing);

在Yii测试版本: 1.1.13

票数 1
EN

Stack Overflow用户

发布于 2021-05-08 16:46:32

这个模块最初对我起作用。但是后来我加入了Yii2,花了很长时间来寻找解决这个问题的方法。对于那些发现这个主题的人,就像我所做的那样,并将Yii2添加到Yii1中,我将离开这个解决方案。

对我来说是第一次帮忙。

代码语言:javascript
复制
        spl_autoload_unregister(['YiiBase', 'autoload']);
        require_once Yii::app()->params['rootPath'] . '/PHPExcel/Classes/PHPExcel.php';
        spl_autoload_register(['YiiBase', 'autoload']);

当我添加Yii2时,我改变了

代码语言:javascript
复制
        spl_autoload_unregister(['Yii', 'autoload']);
        spl_autoload_unregister(['YiiBase', 'autoload']);
        require_once Yii::app()->params['rootPath'] . '/PHPExcel/Classes/PHPExcel.php';
        spl_autoload_register(['YiiBase', 'autoload']);
        spl_autoload_register(['Yii', 'autoload']);

并使用

代码语言:javascript
复制
  $objPHPExcel = new \PHPExcel();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21251906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档