导出excel问题总结

插件对比:

第一种:json2xlsx(需要使用node.js)

第二种:tableExport(table头部和数据不分离且正常显示的情况)

第三种:JsonExportExcel(table头部和数据分离 因为使用了easyUI):json转excel 

GitHub地址:https://github.com/cuikangjie/JsonExportExcel

第四种:转成cvs

GitHub地址:https://github.com/zeMirco/json2csv

(网上其他旁门左道,此方法存在兼容性问题):

HTML:

<input type="Button" id="bygen" value="generate" οnclick="cloneAndConvert()"/ >

Js:

function cloneAndConvert(){
 
    var jsonData = [
    {firstName:"Lorem", lastName:"Lorem", age:46},
    {firstName:"Lorem", lastName:"Lorem", age:46},
    {firstName:"Lorem", lastName:"Lorem", age:46}
    ];
   
    var filteredGridData = JSON.parse(JSON.stringify(jsonData))
    JSONToCSVConvertor(filteredGridData, "UserReport.csv", true);
}


function JSONToCSVConvertor(JSONData, ReportTitle, ShowLabel) {


    //If JSONData is not an object then JSON.parse will parse the JSON string in an Object
    var arrData = typeof JSONData != 'object' ? JSON.parse(JSONData) : JSONData;
    var CSV = '';    
    //This condition will generate the Label/Header
    if (ShowLabel) {
        var row = "";
        
        //This loop will extract the label from 1st index of on array
        for (var index in arrData[0]) {
            //Now convert each value to string and comma-seprated
            row += index + ',';
        }
        row = row.slice(0, -1);
        //append Label row with line break
        CSV += row + '\r\n';
    }
    
    //1st loop is to extract each row
    for (var i = 0; i < arrData.length; i++) {
        var row = "";
        //2nd loop will extract each column and convert it in string comma-seprated
        for (var index in arrData[i]) {
            row += '"' + arrData[i][index] + '",';
        }
        row.slice(0, row.length - 1);
        //add a line break after each row
        CSV += row + '\r\n';
    }


    if (CSV == '') {        
        alert("Invalid data");
        return;
    }   
    
    //this trick will generate a temp "a" tag
    var link = document.createElement("a");    
    link.id="lnkDwnldLnk";
    
    //this part will append the anchor tag and remove it after automatic click
    document.body.appendChild(link);
   
var csv = CSV;
blob = new Blob([csv], { type: 'text/csv' }); 
var csvUrl = window.webkitURL.createObjectURL(blob);
var filename = 'UserExport.csv';
$("#lnkDwnldLnk")
.attr({
'download': filename,
'href': csvUrl
}); 


$('#lnkDwnldLnk')[0].click();    
    document.body.removeChild(link);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值