各位大神我桌急啊,同样的网页,在不同的客户机器上倒出来效果就不一样,我无能为力了。所以求助各位大神......
 
描述:有一个EXCEL的JS,我在网页里调用这个JS,然后点击按钮 将网页的Table传递给JS,然后导出Excel,现在在不同的电脑里导出EXCEL,导出来不同的效果,具体看图吧。JS代码:var idTmr = ""; function toExcel(tableid) //读取表格中每个单元到EXCEL中 

    var curTbl = document.getElementById(tableid); 
     var oXL = new ActiveXObject("Excel.Application"); 
     //创建AX对象excel 
     var oWB = oXL.Workbooks.Add(); 
     //获取workbook对象 
    var oSheet = oWB.ActiveSheet; 
    //激活当前sheet 
     var Lenr = curTbl.rows.length; 
     //取得表格行数 
     for (i = 0; i < Lenr; i++) 
     { 
         var Lenc = curTbl.rows(i).cells.length; 
         //取得每行的列数 
         for (j = 0; j < Lenc; j++) 
         { 
             oSheet.Cells(i + 1, j + 1).value = curTbl.rows(i).cells(j).innerText; 
             //赋值 
         } 
     } 
     oXL.Visible = true; 
     //设置excel可见属性 
}
function copy(tabid) 

var oControlRange = document.body.createControlRange(); 
oControlRange.add(tabid,0); 
oControlRange.select(); 
document.execCommand("Copy"); 

function toExcel(tabid){ 
copy(tabid); 
try 

var xls = new ActiveXObject( "Excel.Application" ); 

catch(e) 

alert( "Excel没有安装或浏览器设置不正确.请启用所有Active控件和插件"); 
return false; 

xls.visible = true; 
var xlBook = xls.Workbooks.Add; 
var xlsheet = xlBook.Worksheets(1); 
xlBook.Worksheets(1).Activate; 
for(var i=0;i<tabid.rows(0).cells.length;i++){ 
xlsheet.Columns(i+1).ColumnWidth=15; 

xlsheet.Paste; 
xls=null; 
idTmr = window.setInterval("Cleanup();",1); 

function Cleanup() { 
window.clearInterval(idTmr); 
CollectGarbage(); 

导出图1:
导出图2:

解决方案 »

  1.   

    CSDN发图真累啊,这个是我的图片地址,在相册“代码”中http://my.csdn.net/my/album/detail/1222634
      

  2.   

    你用这个试试:
    //导出到Excel
        function AutomateExcel(){
        var appExcel = new ActiveXObject("Excel.Application");
               var elTable = document.getElementById("t1");
               var oRangeRef = document.body.createTextRange(); 
               oRangeRef.moveToElementText(elTable); 
               oRangeRef.execCommand("Copy");
              
               appExcel.Workbooks.Add().Worksheets.Item(1).Paste(); 
               appExcel.Visible = true; 
               appExcel = null;
               }
      

  3.   

    用什么js啊, 明明是服务器端做事情……就像说用手枪打多少枪, 才能达到导弹的效果……用服务器来完成吧, 效果好。 而且只要服务器安装office就可以了。 .aspx, .jsp 等可以很方便地完成这件事嘛