Layer——jQuery弹出层插件(网上下载包即可)
FileSaver.js——文件导出插件
like_export.js——导出成Excel或CSV格式的文件(之前博客中有)
不带序号:点击打开链接
带序号:点击打开链接
<script type="text/javascript" src="__STATIC__/bootstrap/js/layer/layer.min.js"></script>
<script type="text/javascript" src="__STATIC__/bootstrap/js/FileSaver.js"></script>
<script type="text/javascript" src="__STATIC__/bootstrap/js/like_export.js"></script>
html
<button type="button" id="export">导出</button>
js
<script type="text/javascript">
$("#export").click(function () {
var _export_url = "{:U('Index/export')}";
var _index = win_obj.layer.msg('正在获取数据,请耐心等待...', {
shade: [0.8, '#393D49'],
icon: 0,
time: 0
});
get_ajax_data(_export_url, {},function (result) {
win_obj.layer.closeAll();
var like_export_obj = new like_export({need_foot: false});
like_export_obj.csv(result.fields, result.list, result.filename);
});
});
</script>
controller
public function export()
{
try {
//准备导出的数组
$category_tdjs = $this->category('tdjs');
$Document = D('Document');
$p = 1;
$list_info = $Document->page($p, $category_tdjs['list_row'])->lists($category_tdjs['id']);
//按条件重组数组
$res_list = array();
//需要返回给前端的数组
$return_list = array();
//导出的列
foreach ($list_info as $key => $val) {
$res_list[$key]['title'] = $val['title'];
}
//返回数据格式转换
$count = 0;
foreach ($res_list as $key => $val) {
$return_list[$count++] = $val;
}
//导出excel表头,键值信息
$return['fields'] = array(
array('field_key' => 'title', 'field_value' => '姓名')
);
$return['list'] = $return_list;
$return['filename'] = date("Ymd", time());
$this->ajaxReturn(['code'=>0,'data'=>$return]);
}catch(\Exception $e){
$this->ajaxReturn(['code'=>1,'message'=>'失败']);
}
}