2015-10-23 68 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);