基础的看这里https://blog.csdn.net/m0_66437880/article/details/141821299?spm=1001.2014.3001.5501
当我们批量导出的时候,如果只想导出部分sheet,比方说,我这里的sheet2方案说明和sheet3数据字典,仅仅用于查看,并不想导出,怎么办呢?
方法一:静态导出,指定导出页面
url里增加&sheets=[0,1,2]的参数,指定导出的页面。像我这里查询时有三个部门,正常导出为(0,1,2,3,4,5,6,7,8),其中1,4,7是计件工资方案,2,5,8是数据字典,这俩我都不要,那么sheets=[0,3,6]
方法二:动态导出,根据查询的数量来自动计算要导出页面
var url = 'http://你们自己的网址/webroot/decision/view/report?reportlets='; // 定义url
var pars = '&format=excel'; // 设置导出格式
var path = "${reportName}"; // 获取模板名称和路径
// 获取模板中参数值,以数组形式存储,每个参数值对应一个sheet.这里的计件团体名称是我的查询参数
var json = [];
var sheetsIndexes = [0]; // 用于存储所有sheets的索引,初始包含0
for (var i = 0; i < 计件团体名称.length; i++) {
var sheet = {
reportlet: path,
计件团体名称: 计件团体名称[i],
date: date
};
json.push(sheet);
// 每个sheet的索引是当前索引乘以3加上0
sheetsIndexes.push((i * 3).toString());
}
// 构建sheets参数
var sheetsParam = '&sheets=' + sheetsIndexes.join(',') + '&__filename__="导出后的文件名"';
// 对json进行encodeURIComponent编码
var jsonStr = encodeURIComponent(JSON.stringify(json));
// 给url添加模板参数
url += jsonStr;
// 给url添加导出参数
url += pars + sheetsParam;
alert(url); // 打印url
window.open(url);
js怎么写看我基础教程的链接,这里就增加了一个sheetsIndexes参数,构建了[0,3,6]的数组,因为js没有range函数,必须用遍历。