• excel 导出 兼容到ie (JavaScript)


    网上查了挺多资料,都不兼容IE,要么就是不是通过json来导出excel表格;

    直接上代码吧。

    var  tats= [{},{},{}] //这样的格式导出。

    tats.forEach(function (item, index) {
                        var vote = {};
                        vote.id = index + 1;
                        vote.area = item.area
                        vote.depart = item.depart
                        vote.companyName = item.companyName
                        vote.personName = item.personName
                        vote.phone = item.phone
                        vote.cardId = item.cardId
                        vote.status = item.status
                        if (vote.status == 1) {
                            vote.status = "已接种";
                        } else if (vote.status == 0) {
                            vote.status = "未接种";
                        }
                        vote.cardId = vote.cardId + ' ' + "&nbsp"
                        arr.push(vote)
                    })
                    var str = ['序号', '单位级别', '所属主管部门', '单位名称', '受种者姓名', '受种者电话', '身份证号码', '是否接种'];
                    Json2Excel(arr, exName, str)
     
        
     function Json2Excel(JSONData, FileName, title, filter) {
            if (!JSONData) return;
            var isIE = !!window.ActiveXObject || "ActiveXObject" in window; //判断是否IE浏览器
            //转化json为object
            var arrData = typeof JSONData != 'object' ? JSON.parse(JSONData) : JSONData;
            var excel = "<table>";
            //设置表头
            var row = "<tr>";
            if (title) {
                //使用标题项
                for (var i in title) { row += "<th align='center'>" + title[i] + '</th>'; }
            } else {
                //不使用标题项
                for (var i in arrData[0]) { row += "<th align='center'>" + i + '</th>'; }
            }
            excel += row + "</tr>";
            //设置数据
            for (var i = 0; i < arrData.length; i++) {
                var row = "<tr>";
                for (var index in arrData[i]) {
                    //判断是否有过滤行
                    if (filter) {
                        if (filter.indexOf(index) == -1) {
                            var value = arrData[i][index] == null ? "" : arrData[i][index];
                            row += '<td>' + value + '</td>';
                        }
                    } else {
                        var value = arrData[i][index] == null ? "" : arrData[i][index];
                        row += "<td align='center'>" + value + "</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);
            if (isIE) {
                var blob = new Blob([excelFile], {
                    type: "application/vnd.ms-excel;charset=utf-8"
                });
                window.navigator.msSaveBlob(blob, FileName + ".xls");
            } else {
                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);
            }
        }
     
     
  • 相关阅读:
    java 实现前面带零的数字进行加减运算(保留前面的0)
    java 判断字符串是否是整数(纯数字:正整数、负整数、0)、至少包含一位小数、数字(可以是整数或小数)
    java 抽象类使用@Autowrited注入对象,子类直接使用父类的该属性
    java、springboot使用proguard混淆代码
    idea 使用阿里云仓库下载的jar包出现证书校验问题(PKIX:unable to find valid certification path to requested target)
    windows10安装zookeeper-3.6.2并生成zookeeper服务
    zookeeper-3.4.8 集群搭建
    zookeeper安装和使用 windows环境
    Dubbo入门---搭建一个最简单的Demo框架
    服务端高并发分布式架构演进之路
  • 原文地址:https://www.cnblogs.com/yangxiaoxin/p/14648944.html
Copyright © 2020-2023  润新知