在表头加一个导出按钮
<div class="admin-main layui-anim layui-anim-upbit">
<fieldset class="layui-elem-field layui-field-title">
<legend>卡号列表</legend>
</fieldset>
<button class="layui-btn" id="setExcel"><i class="layui-inline layui-icon layui-icon-refresh-3"></i>导出数据</button>
<table class="layui-table" id="list" lay-filter="list">
</table>
</div>
导出的js部分
$('#setExcel').on('click', function () {
//套餐id,筛选条件
var receive_id = {$receive_id};
$.post("{:U('Receive/ajaxList')}", {receive_id: receive_id}, function (res) {
layer.msg('数据导出成功', {time: 1000, icon: 1}, function () {
//number,password,status,use_time,start_time,end_time(字段的位置严格对应下面的列名)
table.exportFile(['卡号','密码','使用状态','使用时间','生效时间','截止时间'],res, 'xls');
});
});
});
数据请求(即获取需要导出的数据)
//获取导出数据
public function ajaxList(){
$where = [];
//套餐筛选
$receive_id = I('post.receive_id',0);
if($receive_id){
$where['a.receive_id'] = $receive_id;
}
//实例化卡号表
$model = M('account');
$list = $model
->alias('a')
->field('number,password,a.status,use_time,start_time,end_time')
//左连套餐表
->join('left join __RECEIVE__ as b on a.receive_id=b.receive_id')
->where($where)
->select();
if($list)
{
foreach ($list as $key=>$val)
{
//状态替换为中文
if($val['status'] == 1){
$list[$key]['status'] = '未使用';
}elseif ($val['status'] == 2){
$list[$key]['status'] = '已使用';
}else{
$list[$key]['status'] = '已过期';
}
//时间戳格式化
if($val['use_time']){
$list[$key]['use_time'] = date('Y-m-d H:i:s', $val['use_time']);
}else{
$list[$key]['use_time'] = '/';
}
//时间戳格式化
if($val['start_time']){
$list[$key]['start_time'] = date('Y-m-d H:i:s', $val['start_time']);
}else{
$list[$key]['start_time'] = '/';
}
//时间戳格式化
if($val['end_time']){
$list[$key]['end_time'] = date('Y-m-d H:i:s', $val['end_time']);
}else{
$list[$key]['end_time'] = '/';
}
}
}
$this->ajaxReturn($list);
}
点击导出数据
眼尖的朋友一眼就能看出生效时间和截止时间显示有问题,实际这不是乱码.只是列宽不够
文档也没有调整列宽的介绍,至此导出功能就完了