ThinkPHP最简单的Excle导出方法,不依赖第三方库,三行代码就能实现。虽然ThinkPHP用过很多年、但是在导出Excle方式还是新手,下面的代码仅供参考。如果大神们发现本方法有什么不妥之处,请多多指教,大家一起探讨,一起进步,谢谢各位啦。
此方法比较简单就直接上代码了。
首先是Action里的代码
/**
*
* 导出Excel
*/
public function expExcel(){//导出Excel
$fileName = $_SESSION['loginUserName'].date('_YmdHis');
$xlsModel = D('Gyjyl');
$xlsData = $xlsModel->where($map)->select();
$this->assign('list',$xlsData);
header('pragma:public');
header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$fileName.'.xls"');
header("Content-Disposition:attachment;filename=$fileName.xls");//attachment新窗口打印inline本窗口打印
$this->display();
}把上面控制器的数据输出到expExcel.html 模板里expExcel.html:
<table border="1" cellspacing="0" class="table" width="100%" layoutH="138">
<tbody>
<th colspan="8" >{$Think.session.loginUserName}-{$vo['jyrq']|date="Y-m-d",###}-柜员交易量</th>
</tbody>
<thead>
<tr>
<th orderField="gyjg" <if condition="$_REQUEST._order eq 'gyjg'">class="{$_REQUEST._sort}"</if>>网点名称</th>
<th width="70">柜员号</th>
<th width="70">柜员名</th>
<th width="120">网银笔数</th>
<th width="120">短信笔数</th>
<th width="120">活期笔数/金额</th>
<th width="120">定期笔数/金额</th>
<th width="120">交易日期</th>
</tr>
</thead>
<tbody>
<volist id="vo" name="list">
<tr target="sid_role" rel="{$vo['gybh']}">
<td>{$vo['gyjg']|getDepartmentNameToJgh}</td>
<td>{$vo['gybh']}</td>
<td>{$vo['gybh']}</td>
<td>{$vo['wybs']}</td>
<td>{$vo['dxbs']}</td>
<td>{$vo['hqbs']}/{$vo['hqje']}</td>
<td>{$vo['dqbs']}/{$vo['dqje']}</td>
<td>{$vo['jyrq']|date="Y-m-d",###}</td>
</tr>
</volist>
</tbody>
</table>最后就是前台调用的代码了<a class="icon" href="__URL__/expExcel"><span>导出EXCEL</span</a>最后说几句:本方法的重点是 用Html的header属性 把Html格式重置为Excle文件。 