用ActiveX读取excel文件
我使用下面的VB脚本从Excel文件中读取内容用ActiveX读取excel文件,excel,vbscript,activex,Excel,Vbscript,Activex,我使用下面的VB脚本从Excel文件中读取内容 var ControlCn = new ActiveXObject("ADODB.Connection"); var Conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = E:\\DownloadAttachment.xlsx;Persist Security Info=False;Extended Properties=Excel 8.0
var ControlCn = new ActiveXObject("ADODB.Connection");
var Conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = E:\\DownloadAttachment.xlsx;Persist Security Info=False;Extended Properties=Excel 8.0;";
ControlCn.Open(Conn);
var rs = new ActiveXObject("ADODB.Recordset");
var SQL = "select * from [Sheet1$]";
rs.Open(SQL, ControlCn);
if(rs.bof)
{
document.write('No Data Avaliable');
}
if(!rs.bof)
{
rs.MoveFirst();
var rows = "";
while(!rs.eof)
{
var line = "";
for(var i=0; i!= rs.fields.count; ++i)
{
line += "<td>" + rs.fields(i).value + "</td>";
}
rows += "<tr>" + line + "</tr>";
rs.MoveNext()
}
$(rows).appendTo("#itemList tbody");
}
rs.Close();
ControlCn.Close();
}
当我保持excel文件打开时,此脚本工作,但当我关闭excel文件时,脚本无法打开连接 发布答案,以防像我这样的人在这个愚蠢的错误上陷入困境。 问题在于连接字符串
var Conn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source = E:\\DownloadAttachment.xlsx;Persist Security Info=True;Extended Properties=\"Excel 12.0 Xml;HDR=Yes;IMEX=1;\"";
是正确的连接字符串。对于.xlsx,我们使用Excel 12.0而不是Excel 8.0,提供程序应该是Microsoft.ACE.OLEDB.12.0而不是Jet。可能连接字符串错误。是否尝试将Persist Security Info=False更改为True?或者类似的?是的。问题只与连接字符串有关。