用javascript 创建ActiveX对象时出现:Automation server can't create object"(Automation 服务器不能创建对). 错误的解决办法。

    今天,想实现在客户端读取一个EXCEL文件到一个Table中 ,所以写了如下代码:

 

function  readExcel()
{
   
var fileName = document.getElementById("File1").value;
   
var objExcel = new ActiveXObject("Excel.Application");
   
if (!fileName)
   
{
      
return;
   }
     
   
var objWorkBook = objExcel.WorkBooks.open(fileName);
   
var objSheet = objWorkBook.ActiveSheet;
   
   
var i=1;
   
var name,code;
   
while(true)
   
{
       name
=objSheet.cells(i,2).value;
       
if (!name)
       
{
           
break;
       }

       
       code 
= objSheet.cells(i,1).value;
       
       
var objTable = document.getElementById("employee");
       
var objRow = objTable.insertRow(1);
       
var btnTd = objRow.insertCell();
       btnTd.innerHTML 
= "<input type="Button" value="删除" οnclick="deleteEmp(this)" />";
       
       
var codeTd = objRow.insertCell();
       codeTd.innerHTML 
= "<input type="Text" value=""+code+"" />";
       
       
var nameTd = objRow.insertCell();
       nameTd.innerHTML 
= "<input type="Text" value=""+name+"" />";
       i
++
   }

   
}


function  deleteEmp(btnDelete)
{
   
var index = btnDelete.parentElement.parentElement.rowIndex;
   
var objTable = document.getElementById("employee");
   objTable.deleteRow(index);
}


 

以上其中:empleoyee为一个table的id,"File1"为<input type=file ..../>的ID,实现把EXCEL中的内容读到table中,table有三列,第一列为一个“删除”Button,第二,第三列分别放一个Text控件。

    但在运行的时候,提示:Automation server can't create object。

    但是我要一个HTML文件中,执行同样的脚本会提示:

 

选择“Yes”就不会提示错误,为什么会这样呢?

于是就上Google搜,唉,同病相连的兄弟还不少啊,但没一个能清楚解决的。

后来认真想想:应该是被IE安全机制拦截了。于就就在IE设置里找,但又苦于本人对英文一翘不通,但为了学习,当时还就装了个英文版的IE7,没办法,只有一个一个的看。最后苍天不负有心人啊,终于试出来了。原来是这个:

英文原文为:Initialize and script ActiveX controls not marked as safe for scripting,中文大意是(因为本人英文水平特差,不对肯请指正):对没有标记为安全的ActiveX控件进行初始化和脚本运行。

将它设成:Enable 就解决问题了。

具体设置步骤为:Tools(工具)->Internet Option...(IE 选项)->Security(安全)->Custom Level(用户自定义级别)。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值