js 导出excel(大数据)

完整代码:

//导出excel
function tableToExcel(){
    var arrSor = ["sorttable10","sorttable30","sorttable60","sorttable120"]
    let str = "";
    for (var k = 0; k < arrSor.length; k++) {
        var tab=document.getElementById(arrSor[k]);
        var rows=tab.rows;
        const jsonData = [];
        for(var i=2;i";
        let str2 = "站点站名雨量最大值降水时段落入最大降水时段";
        //循环遍历,每行加入tr标签,每个单元格加td标签
        for(let i = 0 ; i < jsonData.length ; i++ ){
            str2+='';
            for(let item in jsonData[i]){
                //增加\t为了不让表格显示科学计数法或者其他格式
                var itemTem= jsonData[i][item];
                if (itemTem == "暂无数据") {
                    str2+=`${ itemTem + '\t'}`; 
                }else {
                    str2+=`${ itemTem + '\t'}`; 
                }
            }
            str2+='';
        }
        let str3 = "";
        str += (str1 + str2 + str3);
    }
    let worksheet = '雨量最大值'
    let uri = 'data:application/vnd.ms-excel;base64,';
    //下载的表格模板数据
    let template = `
    
    ${str}
`; //下载模板 // window.location.href = uri + this.base64(template) var link = document.createElement("a"); link.href = uri + this.base64(template); link.download = "雨量最大值-" +new Date().format("yyyy年MM月dd日 h时")+ ".xls"; link.style = "visibility:hidden"; document.body.appendChild(link); link.click(); document.body.removeChild(link); } //输出base64编码 function base64 (template) { return window.btoa(unescape(encodeURIComponent(template))) }

解析:
遍历取出表,顺序是行从上往下,列从左往右,将数据存进数组,下面再拼接成表。


image.png

参考文章:https://blog.csdn.net/hhzzcc_/article/details/80419396

第一种方法(大量数据导出)

//导出excel
function tableToExcel() {
    var arrSor = ["sorttable10","sorttable30","sorttable60","sorttable120"]
    let str = "";
    for (var k = 0; k < arrSor.length; k++) {
        var tab=document.getElementById(arrSor[k]);
        var rows=tab.rows;
        const jsonData = [];
        for(var i=2;i";
        let str2 = "" +
                "站点" +
                "站名" +
                "雨量最大值" +
                "降水时段" +
                "落入最大降水时段";
        //循环遍历,每行加入tr标签,每个单元格加td标签
        for(let i = 0 ; i < jsonData.length ; i++ ){
            str2+="";
            for(let item in jsonData[i]){
                if (item.indexOf("yellow") != -1) {//取列数等于3
                    //增加\t为了不让表格显示科学计数法或者其他格式
                    var itemTem= jsonData[i][item];
                    if (itemTem == "暂无数据") {
                        str2+=`
                        ${ itemTem + '\t'}`; 
                    }else {
                        str2+=`
                        ${ itemTem + '\t'}`; 
                    }
                }else {
                    //增加\t为了不让表格显示科学计数法或者其他格式
                    var itemTem= jsonData[i][item];
                    if (itemTem == "暂无数据") {
                        str2+=`
                        ${ itemTem + '\t'}`; 
                    }else {
                        str2+=`
                        ${ itemTem + '\t'}`; 
                    }
                }
            }
            str2+='';
        }
        let str3 = "";
        str += (str1 + str2 + str3);
    }
    
    var tableHtml=""+str+""
    var excelBlob = new Blob([tableHtml], {type: 'application/vnd.ms-excel'});
    var fileName = "雨量最大值-"+new Date().format("yyyy年MM月dd日 h时")+".xls";
    if(isIE()){
        window.navigator.msSaveOrOpenBlob(excelBlob,fileName);
    }else{
        var oa = document.createElement('a');
        oa.href = URL.createObjectURL(excelBlob);
        oa.download = fileName;
        document.body.appendChild(oa);
        oa.click();
    }
} 
//判断是否IE浏览器
function isIE() {
    if (!!window.ActiveXObject || "ActiveXObject" in window) {
        return true;
    } else {
        return false;
    }
} 

参考文章:https://blog.csdn.net/qq_34169240/article/details/84231226

你可能感兴趣的:(js 导出excel(大数据))