IE7用ActiveX,json导出excel

经手的一个架构比较老的基于IE7的erp要做excel导出功能,遍参考网上的例子,终于成功了:

function test(){
  var c = [
    {
        name:'路人甲',
        phone:'123456789',
        email:'000@123456.com'
    },
    {
        name:'炮灰乙',
        phone:'123456789',
        email:'000@1234567.com'
    },
    {
        name:'土匪丙',
        phone:'123456789',
        email:'000@1234568.com'
    },
    {
        name:'流氓丁',
        phone:'123456789',
        email:'000@1234569.com'
    }
  ];
  
  var tou = {name:"名称",phone:"电话",email:"邮箱"};//中文列头
  AllAreaExcel222(c,"导出数据",true,tou);

}

function AllAreaExcel222(JSONData, filename, ShowLabel,tou) {
    //debugger;
    var arrData = typeof JSONData != 'object' ? JSON.parse(JSONData) : JSONData;
    var CSV = '';
    if (ShowLabel) {
        var row = "";        
                
        for (var index in arrData[0]) {
            var col_name = index;//列名初始值是json中的英文列名
            for(var en_name in tou){
              if(en_name==index){
                col_name = tou[en_name];//如果tou中能找到英文列名对应的中文列名,则取中文列名
              }
            }
            
            row += col_name + '\t';            
        }
        
        CSV += row +'\n';
    }

    for (var i = 0; i < arrData.length; i++) {
        var row = "";
        for (var index in arrData[i]) {
            row += arrData[i][index] + '\t';
        }
        
        CSV += row+'\n';        
    }

    if (CSV == '') {
        alert("数据有错误");
        return;
    }
    
    //debugger;    
    try {        
        var oXL;
        try{
            oXL = new ActiveXObject("Excel.Application"); //创建AX对象excel
        }catch(e){
            alert("无法启动Excel!\n\n如果您确信您的电脑中已经安装了Excel,"+"那么请调整IE的安全级别。\n\n具体操作:\n\n"+"工具 → Internet选项 → 安全 → 自定义级别 → 对未标记为可安全执行脚本的ActiveX初始化并脚本运行 → 启用");
            return false;
        }
        var oWB = oXL.Workbooks.Add(); //获取workbook对象
        var oSheet = oWB.ActiveSheet;//激活当前sheet
        clipboardData.setData("text",CSV);//复制到剪切板
        oSheet.Paste();//粘贴到活动的EXCEL中
        oXL.Visible = true; //设置excel可见属性
        var fname = oXL.Application.GetSaveAsFilename(filename+".xls", "Excel Spreadsheets (*.xls), *.xls");
        //var fname = oXL.Application.GetSaveAsFilename(filename+".csv", "Excel Spreadsheets (*.xls), *.xls");
        oWB.SaveAs(fname);
        oWB.Close();
        oXL.Quit();

    } catch (e) {
        alert(e.description);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值