数据量不多,客户端做的处理
本来只是要修改和查询功能,但后来测试要导出数据,于是用前端做了数据导出;自定义导出
但设置exportDataType: "all"也只是导出本页显示的数据 ,所以就根据pagesize做导出,人工显示全部行,然后导出
没通过,要直接导出全部数据,自己不做分页;在网上搜了很久,各种方法也不太好使;就想到最笨的方法:“你不做分页我来帮你做分页”
function initTable(pageSize){
$('#table_id').bootstrapTable('destroy');
$('#table_id').bootstrapTable({
url: 'url,
pagination: true, //是否显示分页(*)
pageNumber: 1, //初始化加载第一页,默认第一页
pageSize: pageSize, //每页的记录行数(*)
sidePagination: "client",
sortOrder: 'asc',
// search: true,
// searchAlign: 'left',
toolbar: "#toolbar",//显示工具栏
pageList: [10, 25, 50, 100, 'ALL'],
onlyInfoPagination: false, //显示分页
//得到查询的参数
queryParams: function (params) {
return {
sortorder: params.order, //排位命令(desc,asc)
sortname: params.sort, //排序列名
pagesize: params.limit, //页面大小
start: params.offset,
"searchName": $("#search_name").val()
};
},
columns: [
{field: 'name', title: '名字'},
{field: 'age', title: '年龄'},
{
field: '',
title: '操作',
halign: 'center',
align: 'center',
sortable: true,
//处理方法
formatter: updateVehicleBrandByName
},
],
});
$('#table_id').bootstrapTable('refresh');
}
function exportData() {
//设置足够页码大小,将所有数据显示在页面上
initTable(3000);
//设置500ms延迟:给足够的时间让页面渲染完成
setTimeout(exportDataAll,500);
}
function exportDataAll() {
$('#table_id').tableExport({
type: 'excel',
mso:{//格式转换,可以转换为excel与word
fileFormat:'xlsx', //转换为excel的.xlsx格式文档,适用于Excel2007及以上版本
xlsx:{//配置.xlsx文件的单元格内容格式
formatId:{
numbers:0 //保留小数点后的位数
}
}
} ,
exportDataType: "all",
worksheetName: 'sheet1', //表格工作区名称
ignoreColumn: [2],//忽略某一列的索引
fileName: '文件名' + Date.now(),//下载文件名称
onCellHtmlData: function (cell, row, col, data) {//处理导出内容,自定义某一行、某一列、某个单元格的内容
return data;
},
});
//再将页面还原成页码10
initTable(10);
}
方法很笨,页面也丑,但勉强能用;
ps:后端做前端还是有问题呀,有木有更好的方法,有一说一前端做导出真的爽呀