如标题,js将页面table导出excel,如何弹出保存对话框?
一般导出代码都是直接打开excel把内容粘贴进去,这样对用户来说不是很好
想在导出时出现了如下的“保存”对话框,用户自己可以选择保存文件在何处。声明下,不用java来处理,要用js
希望各位高手给点建议!

解决方案 »

  1.   

    呵呵,问题我自己已经解决啦,跟大家分享一下,代码如下<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=gbk"/> 
        <title>WEB页面导出为EXCEL文档的方法</title> 
    </head> 
    <body> 
    <table id="tableExcel" width="100%" border="1" cellspacing="0" cellpadding="0"> 
        <tr> 
            <td colspan="5" align="center">WEB页面导出为EXCEL文档的方法</td> 
        </tr> 
        <tr> 
            <td>列标题1</td> 
            <td>列标题2</td> 
            <td>列标题3</td> 
            <td>列标题4</td> 
            <td>列标题5</td> 
        </tr> 
        <tr> 
            <td>aaa</td> 
            <td>bbb</td> 
            <td>ccc</td> 
            <td>ddd</td> 
            <td>eee</td> 
        </tr> 
        <tr> 
            <td><div>AAA</div></td> 
            <td>BBB</td> 
            <td>CCC</td> 
            <td>DDD</td> 
            <td>EEE</td> 
        </tr> 
        <tr> 
            <td>FFF</td> 
            <td>GGG</td> 
            <td>HHH</td> 
            <td>III</td> 
            <td>JJJ</td> 
        </tr>  
    </table> 
    <input type="button" onclick="javascript:method1('tableExcel');" value="导入到EXCEL"> 
    <SCRIPT LANGUAGE="javascript"> 
    var idTmr ;
    function method1(tableid) {//整个表格拷贝到EXCEL中     var curTbl = document.getElementById(tableid); 
        var oXL = new ActiveXObject("Excel.Application"); 
        //创建AX对象excel 
        var oWB = oXL.Workbooks.Add(); 
        //获取workbook对象 
        var xlsheet = oWB.Worksheets(1);
        //激活当前sheet 
        var sel = document.body.createTextRange(); 
        sel.moveToElementText(curTbl); 
        //把表格中的内容移到TextRange中 
        sel.select(); 
        //全选TextRange中内容 
        sel.execCommand("Copy"); 
        //复制TextRange中内容  
        xlsheet.Paste(); 
        //粘贴到活动的EXCEL中       
        oXL.Visible = true; 
        //设置excel可见属性  try{
    var fname = oXL.Application.GetSaveAsFilename("save.xls", "Excel Spreadsheets (*.xls), *.xls");
    }catch(e){
    print("Nested catch caught " + e);
    }finally{
    oWB.SaveAs(fname); oWB.Close(savechanges=false);
     //xls.visible = false;
    oXL.Quit();
    oXL=null;
     //结束excel进程,退出完成
     //window.setInterval("Cleanup();",1);
    idTmr = window.setInterval("Cleanup();",1); }

    function Cleanup() {
        window.clearInterval(idTmr);
        CollectGarbage();
      }
    </SCRIPT> 
    </body> 
    </html> 
    这里我还有一个问题,就是这种导出方法可以实现单元格的合并,但是却带有表格线……
    我想实现表格的合并,但是却不要表格线,各位给点建议哈,谢谢
      

  2.   

    那复杂的表格也用java写?重新组织表格吗?
      

  3.   

    你可以把那个button设置一个ID,然后到代码的最后那里把这个button focus一下就可以啦~~
      

  4.   

    LZ,你的方法可以实现,但是下载下来的excel打开时为什么会询问文件格式不对呢?
      

  5.   

    3楼的方法,为什么在IE9没反应?在IE6和8中都没问题