一、下载PHPExcel
链接地址:https://github.com/PHPOffice/PHPExcel
二、新建目录(以Basic版的Yii2为例)
在/basic/vendor目录下,建立目录phpoffice/phpexcel,把下载的PHPExcel文件解压到新建立的目录中,最终的目录结构为:
/basic/vendor/phpoffice/phpexecel/Classes/PHPExcel
/basic/vendor/phpoffice/phpexecel/Classes/PHPExcel.php
三、引入PHPExcel类
不管是在advanced中还是basic中,因为PHPExcel它是没有命名空间的,就不能通过Yii中的自动引入功能来自动引入PHPExcel中的类,需要自己来手动引入。假设当前Controller类为SiteController
方法一:
require dirname(dirname(__FILE__)).'/vendor/phpoffice/phpexcel/Classes/PHPExcel.php'; class SiteController extends Controller { }
方法二:(本人使用此方式)
1、修改文件/basic/vendor/composer/autoload_namespace.php,在return array();中增加一行:
'PHPExcel' => array($vendorDir . '/phpoffice/phpexcel/Classes'),
2、修改文件/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', ), /******************新增内容 结束***************/ ), /*...............其他代码.................*/ );
四、使用PHPExcel类
经过上面的步骤,我们已经把PHpExcel这个类引入进来了。用如下方式来实例化类:
public function actionIndex() { $objExcel = new PHPExcel(); return $this->render('index'); }