Yii2-手动安装、引用第三方插件PHPExcel实例详解,Excel导出 [ 新手入门 ]
0、下载PHPExcel 下载phpexcel地址:https://github.com/PHPOffice/PHPExcel/archive/1.8.1.zip 下载完成后,解压PHPExcel-1.8.1.zip文件,进入Classes文件夹目录,复制里面的子文件及子文件夹内容(即类文件)。
1、将PHPExcel类文件夹放入libs 在yii2根目录下,新建libs文件夹,并将下载好的PHPExcel类文件夹放入libs文件夹下
2、配置web.php,加入PHPExcel.php类 在D:\wamp\Apache2.2\htdocs\myyii2\config文件夹下,打开web.php文件 添加如下代码: Yii::$classMap['PHPExcel']='@app/libs/PHPExcel.php';
3、创建PHPExcel导出控制器 在D:\wamp\Apache2.2\htdocs\myyii2\controllers文件夹下创建ExportController.php控制器文件。
添加以下代码:
<?php
namespace app\controllers;
use Yii;
use yii\web\Controller;
use app\models\Country;
use PHPExcel;
class ExportController extends Controller
{
public function actionExport(){
$data=Country::find()->asArray()->all();
if(!$data){
return $this->redirect(['Country/index']);
}else{
$objPHPExcel=new PHPExcel();
$objPHPExcel->getProperties()->setCreator("zhangsan")
->setLastModifiedBy("lisi")
->setTitle("my title")
->setSubject("my subject")
->setDescription("my description")
->setKeywords("my keywords")
->setCategory("my category");
// 设置列宽
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20);
// 设置表头
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', '代码')
->setCellValue('B1', '国家')
->setCellValue('C1', '地区');
$n=2;
// 设置内容
foreach($data as $v){
$objPHPExcel->getActiveSheet()->setCellValue('A'.$n,$v['code']);
$objPHPExcel->getActiveSheet()->setCellValue('B'.$n,$v['name']);
$objPHPExcel->getActiveSheet()->setCellValue('C'.$n,$v['population']);
$n=$n+1;
}
// 重命名
$objPHPExcel->getActiveSheet()->setTitle('test-sheet');
$objPHPExcel->setActiveSheetIndex(0);
// 输出
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="test.xls"');
header('Cache-Control: max-age=0');
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); //注意,要加“\”,否则会报错
$objWriter->save('php://output');
}
}
}
4、执行控制器中的export动作 在浏览器中输入网址:http://localhost/myyii2/web/index.php?r=export/export,回车执行excel导出动作。
双击打开excel文件核对excel内容是否与代码设定的内容一致
右键test.xls文件,点击属性-->详细信息,发现属性设置与代码中设置的表格属性一致。
共 1 条回复
-
zuixian113 回复于 2018-06-06 10:40 举报
此教程基于基础模板(basic版本)
如果是高级模板,则在对应的backend或frontend里面的\config\main-local.php文件里的做相应的配置Yii::$classMap['PHPExcel']='@app/libs/PHPExcel.php';
Yii::$classMap['IOFactory']='@app/libs/PHPExcel/IOFactory.php';
Yii::$classMap['PHPExcelSharedDate']='@app/libs/PHPExcel/Shared/Date.php';
zuixian113
最后登录:2021-01-13
在线时长:22小时49分
- 粉丝7
- 金钱1240
- 威望20
- 积分1660