function CellAreaExcel() 

debugger
  var printTable = document.getElementById("searchResult");
  var oXL = new ActiveXObject("Excel.Application"); 
  var oWB = oXL.Workbooks.Add(); 
  var oSheet = oWB.ActiveSheet; 
  var Lenr = printTable.rows.length; 
  for (i=0;i <Lenr;i++) 
  { 
  var Lenc = printTable.rows(i).cells.length; 
  for (j=0;j <Lenc;j++) 
  { 
    oSheet.Cells(i+1,j+1).value = printTable.rows(i).cells(j).innerText; 
  } 
  } 
  oXL.Visible = true; 
}
代码如上,本地测试正常,但是传到虚拟主机上后不能创建 excel 对象。搜索一下问题,都说是虚拟主机上没装 office 造成的。
我有点疑问,javascript 不是在客户端执行的吗?
虚拟主机的服务器端肯定是没有装 office ,那为什么一定有装有 office 才能使用?!

解决方案 »

  1.   

    IE内核的浏览器都可以运行啊,FF的话需要安装IE插件加一个try{}catch{}语句试试出了什么错误一般来说用到ActiveXObject,应该是浏览器的安全设置问题把当前站点添加到可信任的站点或者调低安全级别就可以了
      

  2.   


    是这样的,系统在本机运行是没有问题
    但是传到服务器后提示:ActiveXObject 对象创建失败,应该是没安装 Office 的问题
    (之前本机测试时没有安装 Office 是这样提示的)
      

  3.   

    本来就是Office的插件,你不装Office怎么能支持Excel呢,假若能支持,那谁还买Office,微软倒闭好了~!
      

  4.   


    疑问就是这一点,通过 javascript 执行的应该是客户端的浏览器,客户端已经装有 OFFICE 了(服务器不可能装的)
    为什么客户端还提示创建失败呢?