点击导出所选数据(原生js)

简介: 点击导出所选数据(原生js)

这里采用的是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();
    }
}
相关文章
|
15天前
|
数据采集 存储 监控
实现自动化数据抓取:使用Node.js操控鼠标点击与位置坐标
本文介绍了如何使用Node.js和Puppeteer实现自动化数据抓取,特别是针对新闻网站“澎湃新闻”。通过设置代理IP、User-Agent和Cookie,提高爬虫的效率和隐蔽性,避免被网站封锁。代码示例展示了如何模拟鼠标点击、键盘输入等操作,抓取并整理新闻数据,适用于需要规避IP限制和突破频率限制的场景。
60 10
|
10天前
|
移动开发 前端开发 JavaScript
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
于辰在大学期间带领团队参考网易游戏官网的部分游戏页面,开发了一系列前端实训作品。项目包括首页、2021校园招聘页面和明日之后游戏页面,涉及多种特效实现,如动态图片切换和人物聚合效果。作品源码已上传至CSDN,视频效果可在CSDN预览。
17 0
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
|
16天前
|
数据采集 存储 JavaScript
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
本文介绍了如何使用Puppeteer和Node.js爬取大学招生数据,并通过代理IP提升爬取的稳定性和效率。Puppeteer作为一个强大的Node.js库,能够模拟真实浏览器访问,支持JavaScript渲染,适合复杂的爬取任务。文章详细讲解了安装Puppeteer、配置代理IP、实现爬虫代码的步骤,并提供了代码示例。此外,还给出了注意事项和优化建议,帮助读者高效地抓取和分析招生数据。
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
|
1月前
|
前端开发 JavaScript
JS-数据筛选
JS-数据筛选
33 7
|
1月前
|
JavaScript 数据安全/隐私保护
2024了,你会使用原生js批量获取表单数据吗
2024了,你会使用原生js批量获取表单数据吗
47 4
|
2月前
|
JavaScript 前端开发 安全
js逆向实战之烯牛数据请求参数加密和返回数据解密
【9月更文挑战第20天】在JavaScript逆向工程中,处理烯牛数据的请求参数加密和返回数据解密颇具挑战。本文详细分析了这一过程,包括网络请求监测、代码分析、加密算法推测及解密逻辑研究,并提供了实战步骤,如确定加密入口点、逆向分析算法及模拟加密解密过程。此外,还强调了法律合规性和安全性的重要性,帮助读者合法且安全地进行逆向工程。
89 11
|
2月前
|
移动开发 前端开发 JavaScript
原生JavaScript+canvas实现五子棋游戏_值得一看
本文介绍了如何使用原生JavaScript和HTML5的Canvas API实现五子棋游戏,包括棋盘的绘制、棋子的生成和落子、以及判断胜负的逻辑,提供了详细的代码和注释。
34 0
原生JavaScript+canvas实现五子棋游戏_值得一看
|
1月前
|
机器学习/深度学习 JSON JavaScript
LangChain-21 Text Splitters 内容切分器 支持多种格式 HTML JSON md Code(JS/Py/TS/etc) 进行切分并输出 方便将数据进行结构化后检索
LangChain-21 Text Splitters 内容切分器 支持多种格式 HTML JSON md Code(JS/Py/TS/etc) 进行切分并输出 方便将数据进行结构化后检索
26 0
|
1月前
|
数据采集 JavaScript 前端开发
JavaScript中通过array.filter()实现数组的数据筛选、数据清洗和链式调用,JS中数组过滤器的使用详解(附实际应用代码)
JavaScript中通过array.filter()实现数组的数据筛选、数据清洗和链式调用,JS中数组过滤器的使用详解(附实际应用代码)
|
2月前
|
JSON JavaScript 前端开发
6-19|Python数据传到JS的方法
6-19|Python数据传到JS的方法