我想创建一个简单的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>
&#13;
答案 0 :(得分:0)
唯一支持ActiveX的浏览器是IE,只有非常宽松的安全设置。 IE Edge完全删除了ActiveX。
这意味着您不能再使用ActiveXObject
,除非您在Intranet上定位IE11及更早版本。您需要在服务器上进行处理,或使用File API读取原始xls数据并在浏览器中处理它(并非简单!)。
在仅使用IE11的仅限IE的Intranet环境中,如果您的安全设置已调整为允许Intranet区域中的ActiveX,则ActiveX部件可能会起作用,但您的代码中存在错误。你在循环中有这一行:
document.getElementById('div1').innerHTML = myrow;
...这意味着您将使用第2行的内容填充该div,然后使用第3行的内容覆盖它,然后使用第4行的内容ovewrite ,等
如果你想要所有行的内容,你需要多个div或类似的东西:
document.getElementById('div' + i).innerHTML = myrow;
(假设id
到[{1}}到div2
的div为。{/ p>
另请注意,如果您不打算使用jQuery,则无法包含它;或者您可以继续包含它,然后使用:div22