ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

纯js 导出excle文件

2022-06-20 18:04:58  阅读:125  来源: 互联网

标签:导出 excelFile js date link filed var excle row


<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <button onclick="aaa()">导出excle</button>

    <script>
        function aaa() {
            let newlist = [
                {'bh':11,'lj':11},
                {'bh':22,'lj':22},
                {'bh':33,'lj':33}
            ]

            let filed = {
            title: [
                "编号",
                "路径"
            ],
            filed: [
                "bh",
                "lj"
            ],
        };
             //导出对应的字段
                    exportExcel(newlist, getNowTime(), filed);
        }
        


        function exportExcel(JSONData, FileName, filed) {
            if (!JSONData) return;
            //转化json为object
            var arrData = typeof JSONData != "object" ? JSON.parse(JSONData) : JSONData;
            var excel = "<table>";
            var row = "<tr>";
            for (var i in filed["title"]) {  //标题
                row += "<th align='center'>" + filed["title"][i] + "</th>";
            }
            excel += row + "</tr>";
            if (filed["filed"]) {  //获取表头的字段
                for (var i in arrData) {
                    var row = "<tr>";
                    for (var j in filed["filed"]) {
                        row += "<td>" + arrData[i][filed["filed"][j]] + "</td>";
                    }
                    excel += row + "</tr>";
                }
            }
            excel += "</table>";
            var excelFile =
                "<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:x='urn:schemas-microsoft-com:office:excel' xmlns='http://www.w3.org/TR/REC-html40'>";
            excelFile +=
                '<meta http-equiv="content-type" content="application/vnd.ms-excel; charset=UTF-8">';
            excelFile +=
                '<meta http-equiv="content-type" content="application/vnd.ms-excel';
            excelFile += '; charset=UTF-8">';
            excelFile += "<head>";
            excelFile += "<!--[if gte mso 9]>";
            excelFile += "<xml>";
            excelFile += "<x:ExcelWorkbook>";
            excelFile += "<x:ExcelWorksheets>";
            excelFile += "<x:ExcelWorksheet>";
            excelFile += "<x:Name>";
            excelFile += "{worksheet}";
            excelFile += "</x:Name>";
            excelFile += "<x:WorksheetOptions>";
            excelFile += "<x:DisplayGridlines/>";
            excelFile += "</x:WorksheetOptions>";
            excelFile += "</x:ExcelWorksheet>";
            excelFile += "</x:ExcelWorksheets>";
            excelFile += "</x:ExcelWorkbook>";
            excelFile += "</xml>";
            excelFile += "<![endif]-->";
            excelFile += "</head>";
            excelFile += "<body>";
            excelFile += excel;
            excelFile += "</body>";
            excelFile += "</html>";
            var uri =
                "data:application/vnd.ms-excel;charset=utf-8," +
                encodeURIComponent(excelFile);
            var link = document.createElement("a");
            link.href = uri;
            link.style = "visibility:hidden";
            link.download = FileName + ".xls";
            document.body.appendChild(link);
            link.click();
            // document.body.removeChild(link);
        }

        //获取当前时间
        function getNowTime() {
            var date = new Date();
            //年 getFullYear():四位数字返回年份
            var year = date.getFullYear();  //getFullYear()代替getYear()
            //月 getMonth():0 ~ 11
            var month = date.getMonth() + 1;
            //日 getDate():(1 ~ 31)
            var day = date.getDate();
            //时 getHours():(0 ~ 23)
            var hour = date.getHours();
            //分 getMinutes(): (0 ~ 59)
            var minute = date.getMinutes();
            //秒 getSeconds():(0 ~ 59)
            var second = date.getSeconds();

            var time = year + '-' + addZero(month) + '-' + addZero(day) + ' ' + addZero(hour) + ':' + addZero(minute) + ':' + addZero(second);
            return time;
        }


        //小于10的拼接上0字符串
        function addZero(s) {
            return s < 10 ? ('0' + s) : s;
        }
    </script>
</body>

</html>

 

标签:导出,excelFile,js,date,link,filed,var,excle,row
来源: https://www.cnblogs.com/zxh-bug/p/16394163.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有