这里采用的是a标签的形式导出的(比较方便)
//设置变量和数组来进行所选数据的导出 //想要导出的总数据(接口返回的数据) let datas; //想要导出的部分数据 let arr_arr = []; //点击事件 function elext() { //初始化一下数组 arr_arr = [] //将所选的数据push到数组里面 for (let i = 0; i < $('.radio').length; i++) { if ($('.radio').eq(i).prop('checked') == true) { arr_arr.push(dat[i]) } } console.log(arr_arr); //判断有没有东西,没有的话导出全部数据,有就导出选择的数据 if (arr_arr.length == 0) { //定义表头 let str = '多选ID,序号,工资日期,员工姓名,公共性质,职务,薪水等级,岗位标准工资,安全标准工资,岗位标准津贴,绩效奖金,应出勤天数,实际出勤天数,岗位工资,安全质量奖金,岗位津贴,绩效奖金,证书补贴,通讯补贴,电脑补贴,夜班补贴,加班补贴,误餐补贴,租房补贴,高温补贴,取暖补贴,外出施工补贴,奖金,其他补助,扣款,应发小计,个人社保,个税,实发小计,单位社保,管理费,合计金额,电话,身份证号,银行卡,项目id,项目名称,操作\n'; //增加\t为了不让表格显示科学计数法或者其他格式 for (let i = 0; i < datas.length; i++) { for (let item in datas[i]) { str += `${datas[i][item] + '\t'},`; } str += '\n'; } //encodeURIComponent解决中文乱码 let uri = 'data:text/csv;charset=utf-8,\ufeff' + encodeURIComponent(str); //通过创建a标签实现 let link = document.createElement("a"); link.href = uri; //对下载的文件命名 link.download = "工资报表.csv"; link.click(); } else { //删除所不需要的数据 for (let i = 0; i < arr_arr.length; i++) { delete arr_arr[i].grade_fixed; delete arr_arr[i].bz_wages_fixed; } //定义表头 let str = '多选ID,序号,工资日期,员工姓名,公共性质,职务,薪水等级,岗位标准工资,安全标准工资,岗位标准津贴,绩效奖金,应出勤天数,实际出勤天数,岗位工资,安全质量奖金,岗位津贴,绩效奖金,证书补贴,通讯补贴,电脑补贴,夜班补贴,加班补贴,误餐补贴,租房补贴,高温补贴,取暖补贴,外出施工补贴,奖金,其他补助,扣款,应发小计,个人社保,个税,实发小计,单位社保,管理费,合计金额,电话,身份证号,银行卡,项目id,项目名称,\n'; //增加\t为了不让表格显示科学计数法或者其他格式 for (let i = 0; i < arr_arr.length; i++) { for (let item in arr_arr[i]) { str += `${arr_arr[i][item] + '\t'},`; } str += '\n'; } //encodeURIComponent解决中文乱码 let uri = 'data:text/csv;charset=utf-8,\ufeff' + encodeURIComponent(str); //通过创建a标签实现 let link = document.createElement("a"); link.href = uri; //对下载的文件命名 link.download = "工资报表.csv"; link.click(); } }