使用 javascript 读取 Xls 文件

Read Xls file using javascript

本文关键字:文件 Xls 读取 javascript 使用      更新时间:2023-09-26

我想做一个简单的javacript函数,它可以将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>
	<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>
	
	
	
	
	<body>
	
	
<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>

唯一支持ActiveX的浏览器是IE,并且只有非常宽松的安全设置。IE Edge完全放弃了ActiveX。

这意味着你不能再使用 ActiveXObject,除非你在 Intranet 上面向 IE11 及更早版本。您要么需要在服务器上进行处理,要么使用文件 API 读取原始 xls 数据并在浏览器中进行处理(并非微不足道!


在最多使用 IE11 的仅限 IE 的 Intranet 环境中,如果安全设置调整为允许 ActiveX 进入 Intranet 区域,则 ActiveX 部分可能会工作,但代码中存在 bug。循环中有以下行:

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

。这意味着您将用第 2 行的内容填充该div,然后用第 3 行的内容覆盖它,然后用第 4 行的内容编写,依此类推。

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

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

(假设div 具有 id s 像 div2div22

还要注意,如果你不打算使用jQuery,你就不能包含它;或者你可以继续包含它,然后使用它$("#div" + i).html(myrow);