导出excel,如何在下方弹出是否打开或保存

/***导出勾选列内容生成excel***/
function exportToExcel(tableid,chkname) //读取表格中每个单元到EXCEL中
{

 var curTbl = document.getElementById(tableid);
 if(chkname==undefined) chkname="";
 var curChk = $("[name='"+chkname+"']");
 var oXL;

   try{
       oXL = new ActiveXObject("Excel.Application"); //创建AX对象excel 
   }catch(e){
       dalert("无法启动Excel!\n\n如果您确信您的电脑中已经安装了Excel,"+"那么请调整IE的安全级别。\n\n具体操作:\n\n"+"工具 → Internet选项 → 安全 → 自定义级别 → 对没有标记为安全的ActiveX进行初始化和脚本运行 → 启用");
       return false;
   }

 var oWB = oXL.Workbooks.Add();//获取workbook对象 
 var oSheet = oWB.ActiveSheet;//激活当前sheet 
 var hang = curTbl.rows.length;//取得表格行数
 var lie =curTbl.rows(0).cells.length;//取得数据源列数
 for(var i=0;i<hang;i++){//i为表单对应的行,j为表单对应的列
     for(var j=0,k=0;j<lie-1;j++,k++){//k为生成EXCEL对应的列

         if(curChk[j].checked){//当勾选上时记录相应的数据
         oSheet.Cells(i+1,k+1).NumberFormatLocal = "@";//设置单元格数字格式为文本
         oSheet.Cells(i+1,k+1).value=curTbl.rows(i).cells(j).innerText;
         }else{
            k--;//当未勾选时,EXCEL列回退
         }
     }
 }
 oXL.Visible = true;//设置excel可见属性
  try{
    var fname = oXL.Application.GetSaveAsFilename("用户导出结果.xls", "Excel Spreadsheets (*.xls), *.xls");
}catch(e){
    print("Nested catch caught " + e);
}finally{
    location.href='用户导出结果.xls';
       oWB.SaveAs(fname);

    oWB.Close(savechanges=false);
     //xls.visible = false;
    oXL.Quit();
    oXL=null;
     //结束excel进程,退出完成
     //window.setInterval("Cleanup();",1);
    idTmr = window.setInterval("Cleanup();",1); 
}   

}

IE浏览器
1.我想要的是这种展示:(这是用jsp中java代码写的输出流)
图片说明

2.目前js导出的,就直接把excel打开了,又弹出了另存为。是这样的:(现在只用js,不能像之前那样)

图片说明

想问下大神们,创建ActiveXObject的方式能不能实现第一种
(查了很久,貌似用a标签路径下载可以,但我是ajax查询返回的数据,在调用
exportToExcel方法,如何实现)

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐