2015-10-23 67 views
0

我想制作一个简单的javacript函数,它可以将来自xls文件的数据存储在数组中。我的代码如下,但它没有返回任何人可以帮助我吗?使用javascript读取Xls文件

<!DOCTYPE html> 
 
<html lang="en"> 
 

 

 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"> 
 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"> 
 
    <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> 
 
\t <script> 
 
function GetData(){ 
 
      var excel = new ActiveXObject("Excel.Application"); 
 
      var excel_file = excel.Workbooks.Open("C:\\testyt.xls"); 
 
      var excel_sheet = excel.Worksheets("Sheet2"); 
 
      for(var i=2;i<20;i++){ 
 
      var myrow = excel_sheet.Range("A"+i); //to read values in row A 
 
      document.getElementById('div1').innerHTML = myrow; 
 
      } 
 
} 
 
</script> 
 
\t 
 
\t 
 
\t 
 
\t 
 
\t <body> 
 
\t 
 
\t 
 
<form id="From1" method="post"> 
 
    <div1 id="div1"> 
 
<h2></h2> 
 
    </div1> 
 
<p style="font-size:150%;margin-left:200px; margin-top:60px">Read Data </p> 
 
<input type="button" onclick="GetData();"/> 
 
</form> 
 

 
</body> 
 
</html> 
 
</html>

+0

除非你使用的是IE(现在基本上已经被弃用了),否则这个工作没有希望写成。当您尝试运行它时,您在开发人员工具控制台中看到了哪些错误? –

+0

我只使用IE浏览器,但它仍然无法正常工作,你可以给我任何其他链接的教程相同? – Marshmellow

+0

查看TJ Crowder提供的答案,下面应该会有所帮助。 –

回答

0

是支持的ActiveX唯一的浏览器IE是,只有用非常宽容的安全设置。 IE Edge完全丢弃ActiveX。

这意味着您不能再使用ActiveXObject,除非您将目标锁定在IE11及更早版本的Intranet上。您需要在服务器上进行处理,或使用File API来读取原始xls数据并在浏览器中处理它(不是微不足道!)。


在使用最多的IE11 IE-只有内网环境中,调整为允许ActiveX的Intranet区域安全设置,该ActiveX部分可能会奏效,但你必须在你的代码中的错误。你有这条线的循环:

document.getElementById('div1').innerHTML = myrow; 

......这意味着你将在第2行的内容DIV填充,然后用3行的内容覆盖它,然后ovewrite 与4行的内容等

如果希望所有行的内容,你要多个div或类似:

document.getElementById('div' + i).innerHTML = myrow; 

(通过假设的div id就像。)

另请注意,如果您不打算使用jQuery,则无法包含它;或者你可以继续包含它,然后使用它:$("#div" + i).html(myrow);