此方法参照官方文档,如下图:
一、JS table工具栏加入导出标志
,defaultToolbar:['filter',{
title: '导出全部数据' //鼠标放在上面显示的提示
,layEvent: 'exportData' //事件名,用于toolbar事件中使用
,icon: 'layui-icon-export' //图标类名
}]//显示导航栏
二、JS 添加监听事件
//监听头工具栏事件
table.on('toolbar(test)', function(obj){
switch(obj.event){
case 'exportData':
//导出数据
$.ajax({
url: '/xxx/exportData'//查询全部数据
,type: 'post'
,async: false
,dataType: 'json'
,success: function (res) {
table.exportFile(['产品名称','产品类别','试验产品型号'], res, 'xls');
//三个参数:表头行各列名称、数据、文件扩展名
}
});
break;
};
});
三、Controller方法
@RequestMapping("/exportData")
@ResponseBody
public List<List<String>> exportData(){
List<List<String>> listList = new ArrayList<List<String>>();
List<ProductAndCertInfo> proAndCert = productInfoService.getProAndCertByType(cert_type);
//数据填充
//将对象取出拼接成list
for (ProductAndCertInfo pro: proAndCert){
List<String> list = new ArrayList<String>();
list.add(pro.getProduct_name());//产品名称
list.add(pro.getProduct_category());//产品类别
list.add(pro.getProduct_type());//试验产品型号
listList.add(list);
}
return listList;
}
导出效果: