我正在使用 Yii框架,我必须加载 PHPExcel 类。
在我的main.php中,我将配置设置为
'import'=>array(
'application.models.*',
'application.components.*',
'application.extensions.*',
'ext.PHPExcel.PHPExcel',
),
我正在编辑 Autoloader.php 中的注册功能,如下所示
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();
时它的回复
include(PHPExcel_Worksheet_Drawing.php): failed to open stream: No such file or directory
我的目录结构是:
extensions
-----PHPExcel
-------PHPExcel
------ PHPExcel.php
感谢您的帮助
答案 0 :(得分:1)
如果有效,请尝试使用此代码,请注意有双*
Yii::import('ext.PHPExcel.**', true);
$objDrawing = new PHPExcel_Worksheet_Drawing();
var_dump($objDrawing);
[在Yii版本中测试:1.1.13]
答案 1 :(得分:0)
这个模块最初对我有用。但是后来我添加了 Yii2 并花了很长时间寻找解决问题的方法。对于那些找到这个话题的人,就像我所做的那样,并将 Yii2 添加到 Yii1 中,我会留下这个解决方案。
对我来说首先帮助了这个。
spl_autoload_unregister(['YiiBase', 'autoload']);
require_once Yii::app()->params['rootPath'] . '/PHPExcel/Classes/PHPExcel.php';
spl_autoload_register(['YiiBase', 'autoload']);
当我添加 Yii2 时我改变了
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']);
并使用
$objPHPExcel = new \PHPExcel();