要将当前分页数据或全部数据导出为Excel,可以按照以下步骤操作:
1. 导出当前页数据:使用jqGrid的`getRowData`方法获取当前页所有数据。示例代码如下:
```javascript
var data = $("#table_list").jqGrid('getRowData');
```
2. 导出所有分页总数据:首先获取当前所用到的查询条件,然后使用条件去掉查询接口查询出所有数据(由于楼主要通过导入Excel的内容做查询条件,有点复杂)。接着使用layui库,需要先载入excel.js,可以通过https://gitee.com/wangerzi/layui-excel去下载。示例代码如下:
```javascript
// 获取当前所用到的查询条件
var queryData = $("#table_list").jqGrid('getGridParam', 'postData');
// 使用条件去掉查询接口查询出所有数据(由于楼主要通过导入Excel的内容做查询条件,有点复杂)
// ...
// 使用layui库导出Excel
layui.use('table', function(){
var table = layui.table;
// ...其他代码
// 导出Excel
table.exportFile('/path/to/export/file', [data]);
});
```
```javascriptfunction exportExcel() {
var queryData = $("#table_list").jqGrid('getGridParam', 'postData'); // 将分页的信息修改掉,要不然不能查询出所有数据
queryData.current = 1;
queryData.rowCount = 20000;
$.ajax({
url: '${base}/merak/signorder/listPage',
dataType: 'json',
type: 'POST',
data: queryData,
success(res) {
if (!res.success) {
FTK.alert("获取数据失败", 0);
return;
}
var allData = res.data.data;
if (allData.length == 0) {
FTK.alert("暂无数据", 1);
return;
}
// 引入需要的excel.js
layui.config({
base: '${base}/statics/js/'
}).use('excel', function () { // 设置excel表头
allData.unshift({ orderNo: '单号', signFlowId: '流程号', manufacturer: '厂商', templateNo: '模板编号', templateName: '模板名称', contractNo: '厂商合同编号', signer: '签署者', signTime: '签署时间' }); //导出
layui.excel.exportExcel({ sheet1: allData }, '订单信息.xlsx', 'xlsx');
});
},
error() {
FTK.alert("获取数据失败", 0);
}
});
}
```