zoukankan      html  css  js  c++  java
  • 原生javaScript导出表格数据

    <!DOCTYPE html>
    <html lang="zh">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>Document</title>
    </head>
    <body>
        <button onclick="exportData(header,jsonData,'solid','csv')">导出csv</button>
        <button onclick="exportData(header,[],'下载模板','csv')">下载模板</button>
    </body>
    </html>
    <script type="text/javascript">
        //表头
        var header = [
            {
                key: 'name',
                value: '姓名'
            },
            {
                key: 'email',
                value: '邮箱'
            },
            {
                key: 'age',
                value: '年龄'
            },
            {
                key: 'phone',
                value: '手机号'
            },
            {
                key: 'address',
                value: '地址'
            }
        ]
        //表格数据
        var jsonData = [
            {
              name:'孙悟空',
              phone:'123456',
              email:'123@123456.com'
            },
            {
              name:'猪八戒',
              phone:'123456',
              email:'123@123456.com'
            },
            {
              name:'沙和尚',
              phone:'123456',
              email:'123@123456.com'
            },
            {
              name:'唐僧',
              phone:'123456',
              email:'123@123456.com'
            }
        ]
        function exportData(header, jsonData, fileName,extension){
            //列标题,用逗号隔开,每一个逗号就是隔开一个单元格
            let str = '';
            var keys = [];
            for(i = 0; i<header.length; i++){
                str+=`${header[i].value}	,`;
                keys.push(header[i].key);
            }
            str +=`
    `
            for(let i = 0; i<jsonData.length; i++){
                for(let j = 0; j < keys.length; j++){
                    console.log(jsonData[i],keys[j])
                    str+=`${jsonData[i][keys[j]] || ''}	,`
                }
                str+=`
    `
            }
            let uri = 'data:text/csv;charset=utf-8,ufeff' + encodeURIComponent(str);
            download(uri,fileName,extension);
        }
        
        function download(url,fileName,extension){
            var oA = document.createElement('a');
            oA.href = url;
            oA.download = `${fileName}.${extension}`;
            document.body.appendChild(oA);
            oA.click();
            document.body.removeChild(oA);
        }
    </script>
  • 相关阅读:
    Windows核心编程 第八章 用户方式中线程的同步(下)
    Windows核心编程 第八章 用户方式中线程的同步(下)
    Windows核心编程 第八章 用户方式中线程的同步(上)
    Windows核心编程 第八章 用户方式中线程的同步(上)
    Windows PE 第四章 导入表
    Windows PE 第四章 导入表
    PAT 1005 继续(3n+1)猜想
    PAT 甲级 1002 A+B for Polynomials
    HDU 1798 Tell me the area
    HDU 1159 Common Subsequence
  • 原文地址:https://www.cnblogs.com/fuzhengyi/p/9970734.html
Copyright © 2011-2022 走看看