author @小凯
[TOC]
## 一、前期准备工作
> 前期准备工作可以看看PHPExcel导入的准备,另外导出需要准备一个数据列表页面,一张学生信息表。
* * * * *
## 二、具体操作流程及实现思路
**实现思路**:
1.首先将数据库里面的学生信息取出来,展示在界面。我们将新建一个student方法,来展示学生信息。
2.通过点击 导出Excel按钮 请求导出处理函数export。
3.export收到请求后,将取出来的数据循填入到excel表格中。
4.数据填完了,生成excel表格输出在浏览器下载。
* * * * *
## 三、案例展示
**前台代码**
~~~
<div class="container">
<table class="table table-bordered" width="60%">
<thead>
<tr>
<th width="30">ID</th>
<th width="50">姓名</th>
<th width="30">年龄</th>
<th width="30">班级</th>
<th width="30">电话</th>
<th width="30">邮箱</th>
</tr>
</thead>
<tbody>
{volist name="list" id="v"}
<tr>
<td>{$v['id']}</td>
<td>{$v['name']}</td>
<td>{$v['age']}</td>
<td>{$v['class']}</td>
<td>{$v['tel']}</td>
<td>{$v['email']}</td>
</tr>
{/volist}
</tbody>
</table>
<button type="button" onclick="window.open('{:url('export')}')">导出Excel</button>
</div>
~~~
* * * * *
**后台代码**
~~~
//表格导出处理
public function export(){
//1.从数据库中取出数据
$list = Db::name('student')->select();
//2.加载PHPExcle类库
vendor('PHPExcel.PHPExcel');
//3.实例化PHPExcel类
$objPHPExcel = new \PHPExcel();
//4.激活当前的sheet表
$objPHPExcel->setActiveSheetIndex(0);
//5.设置表格头(即excel表格的第一行)
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', 'ID')
->setCellValue('B1', '姓名')
->setCellValue('C1', '年龄')
->setCellValue('D1', '班级')
->setCellValue('E1', '电话')
->setCellValue('F1', '邮箱');
//设置F列水平居中
$objPHPExcel->setActiveSheetIndex(0)->getStyle('F')->getAlignment()
->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
//设置单元格宽度
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('E')->setWidth(15);
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('F')->setWidth(30);
//6.循环刚取出来的数组,将数据逐一添加到excel表格。
for($i=0;$i<count($list);$i++){
$objPHPExcel->getActiveSheet()->setCellValue('A'.($i+2),$list[$i]['id']);//添加ID
$objPHPExcel->getActiveSheet()->setCellValue('B'.($i+2),$list[$i]['name']);//添加姓名
$objPHPExcel->getActiveSheet()->setCellValue('C'.($i+2),$list[$i]['age']);//添加年龄
$objPHPExcel->getActiveSheet()->setCellValue('D'.($i+2),$list[$i]['class']);//添加班级
$objPHPExcel->getActiveSheet()->setCellValue('E'.($i+2),$list[$i]['tel']);//添加电话
$objPHPExcel->getActiveSheet()->setCellValue('F'.($i+2),$list[$i]['email']);//添加邮箱
}
//7.设置保存的Excel表格名称
$filename = '学生信息'.date('ymd',time()).'.xls';
//8.设置当前激活的sheet表格名称;
$objPHPExcel->getActiveSheet()->setTitle('学生信息');
//9.设置浏览器窗口下载表格
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Disposition:inline;filename="'.$filename.'"');
//生成excel文件
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
//下载文件在浏览器窗口
$objWriter->save('php://output');
exit;
}
~~~
* * * * *
## 四、代码下载地址及更新日期
>说明:每次demo的数据库文件将放在db目录下,需要的导入数据库即可。
**代码地址[https://github.com/liuzhen153/thinkphp5-demo](https://github.com/liuzhen153/thinkphp5-demo) 的 [PHPExcel-demo2](https://github.com/liuzhen153/thinkphp5-demo/tree/master/PHPExcel-demo2)**
> 本次更新:2017/2/18 晚
- 前言
- Ⅰ.PHP基础知识
- 1.PHP基本语法(一)
- 2.PHP基本语法(二)
- 3.流程控制结构
- 4.PHP函数
- 5.数组
- 6.字符串
- 7.PHP正则表达式
- 8.PHP的日期和时间
- 9.GD库图像处理
- 10.文件处理系统
- 11.文件上传和下载
- 12.数据库之MySQL(概述)
- Ⅱ.ThinkPHP5入门实践
- 一、先看到页面
- 1.1只展示页面
- 1.2给视图传递数据
- 1.3使用公共模板
- 1.4使用模板布局
- 二、简单的数据库操作
- (1)查
- (2)增
- (3)改
- (4)删
- (5)链式操作
- 三、初级-阶段性综合应用
- (1)注册
- (2)登录
- 四、各种基本操作
- 1.操作Session
- 2.操作Cookie
- 3.文件上传
- 五、富文本编辑器
- 集成wangEditor
- 集成UEditor
- 六、验证码
- 图片验证码
- Ⅲ.常用类库的使用
- 一、PHPExcel表格导入
- 二、PHPExcel表格导出
- 三、阿里大于短信验证码
- 四、时间戳操作Time
- 五、邮件发送
- 六、PHP操作Python
- Ⅳ.实例讲解
- 一、病房管理系统
- 写在前面
- 1.引导页
- 2.公共模板
- 3.登录
- 4.功能引导页集合
- 5.修改密码
- 6.员工信息注册
- 7.员工信息更新
- 8.员工信息删除
- 9.病人信息注册
- 10.病人信息更新
- 11.出院手续办理
- 12.病人信息删除
- 13.科室信息查询
- 14.医护信息查询
- 15.病房信息查询
- 16.病历信息查询
- 加群验证
- 必看推荐阅读【不断更新】