解决在Yii2中使用PHPExcel出现Class 'app\controllers\PHPExcel' not found的问题

 1、下载PHPExcel
    连接地址:https://github.com/PHPOffice/PHPExcelphp

    2、新建目录(以Basic版的Yii2为例)git

    在/basic/vendor目录下,创建目录phpoffice/phpexcel,把下载的PHPExcel文件解压到新创建的目录中,最终的目录结构为:github

    /basic/vendor/phpoffice/phpexecel/Classes/PHPExcelcomposer

    /basic/vendor/phpoffice/phpexecel/Classes/PHPExcel.phpui

    3、引入PHPExcel类this

    无论是在advanced中仍是basic中,由于PHPExcel它是没有命名空间的,就不能经过Yii中的自动引入功能来自动引入PHPExcel中的类,须要本身来手动引入。假设当前Controller类为SiteControllerspa

    方法一:excel

require dirname(dirname(__FILE__)).'/vendor/phpoffice/phpexcel/Classes/PHPExcel.php';
class SiteController extends Controller {

}

方法二:(本人使用此方式)code

    一、修改文件/basic/vendor/composer/autoload_namespace.php,在return array();中增长一行:blog

'PHPExcel' => array($vendorDir . '/phpoffice/phpexcel/Classes'),

 二、修改文件/basic/vendor/composer/autoload_static.php,找到 public static $prefixesPsr0 = array () 部分,在键名P的下面新增PHPExcel的内容,最终结果为:

public static $prefixesPsr0 = array (
    'P' => 
    array (
        'Prophecy\\' => 
        array (
            0 => __DIR__ . '/..' . '/phpspec/prophecy/src',
        ),
        
        /******************新增内容  开始***************/
        'PHPExcel' =>
        array (
            0 => __DIR__ . '/..' . '/phpoffice/phpexcel/Classes',
        ),
        /******************新增内容  结束***************/
    ),
    
    /*...............其余代码.................*/
    
);

4、使用PHPExcel类

    通过上面的步骤,咱们已经把PHpExcel这个类引入进来了。用以下方式来实例化类:

public function actionIndex() {
    $objExcel = new \PHPExcel();
    return $this->render('index');
}
相关文章
相关标签/搜索