可不可以用javascript 把整个页面保存成excel(word)格式的文件。比如我点击一个button,
弹出一个是否保存文件,文件内容是整个页面。
或者,通过一些限定,只保存局部页面的内容,请大家帮忙看看,
最好有个DEMO.谢谢!

解决方案 »

  1.   

    项目压的紧,不能测试了.给你个思路吧.严格的来说应该不可以,javascript不是用来做文档处理的.但是由于excel可以辨认一些html标记的文件.所以能打折扣的实现.思路是将你所要保存的信息用javascript写到一table最好不要有任何的图片和css和按钮什么的.然后将这个html文件保存(是否可以改名不知道,你实验一下吧)你用excel打开就可以了.能打开但不赶保证不走形
      

  2.   

    请使用此方法//----------------------------------------------------------
    // 生成Excel文件并保存
    // 输入参数:
    // formName:要生成的数据所在的form名称
    // tableName:要生成的数据所在的table名称
    //----------------------------------------------------------
    function exportexcel(formName,tableName){
           var oXL = new ActiveXObject("Excel.Application");
           oXL.Visible = true;
           var oWB = oXL.Workbooks.Add();
           var oSheet = oWB.ActiveSheet;
          
           var div1=document.all.item(formName);
           var table1=div1.all.item(tableName);
           var table=new Array(); var retArr = getTableRowsCols(table1);
           var rlen=retArr[0];
           var clen=retArr[1];

           var flagTable=new Array(rlen);
           for(var i=0;i<rlen;i++){
           flagTable[i]=new Array(clen);
           for(var j=0;j<clen;j++){
           flagTable[i][j]=0;
           }
           } var rowBegin=1, colBegin=1; //导出的表格的起始位置

           var c1=oSheet.Cells(rowBegin,colBegin);
           var c2=oSheet.Cells(rlen+rowBegin-1,clen+colBegin-1);
           oSheet.Range(c1,c2).VerticalAlignment = -4108;
           oSheet.Range(c1,c2).HorizontalAlignment =  -4108;
          
       exportTable(oSheet, flagTable, table1, rowBegin, colBegin);    
               
            oSheet.Range(oSheet.Cells(rowBegin,colBegin),oSheet.Cells(rlen+rowBegin-1,clen+colBegin-1)).EntireColumn.AutoFit();
           oXL.UserControl = true;
           oXL.Quit();
    }