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.病歷信息查詢
- 加群驗證
- 必看推薦閱讀【不斷更新】