更新 Excel 工作表(在经典 ASP/Vbscript 中)

Posted

技术标签:

【中文标题】更新 Excel 工作表(在经典 ASP/Vbscript 中)【英文标题】:Update Excel Sheet (in Classic ASP/Vbscript) 【发布时间】:2012-03-08 16:20:16 【问题描述】:

我尝试在 Classic-ASP 中搜索可更新 Excel (XLS) 文件的代码,但无法正常工作。

这是我所拥有的:

<!--#include file="../adovbs.inc"-->
<%
' Open and Update and then Close The XLS File
Dim objConn
set objConn = Server.CreateObject("ADODB.Connection")
Dim FLConnect
Dim strSQLexcel

' Create the connection string.
    FLConnect = "Provider=Microsoft.Jet.OLEDB.4.0 Data Source=" & Server.MapPath("TEST.xls") & "Extended Properties='Excel 8.0;HDR=No'"

' Create the SQL statement.
    strSQLexcel= "UPDATE [Sheet1$A1:A1] SET F1='TestValue1'"

set objConn = Server.CreateObject("ADODB.Recordset")

'Set objConn = New ADODB.Connection

' Create and open the Connection object.
    objConn.Open FLConnect

' Execute the insert statement.
    objConn.Execute strSQLexcel

' Close and destroy the Connection object.
    objConn.Close

%>

但我不断收到错误消息:“连接不能用于执行此操作。在此上下文中它已关闭或无效。”

非常感谢...

【问题讨论】:

用缺失的试试看; - ...xls") & "Ext.. - ...xls") & ";Ext.. 【参考方案1】:

你的连接字符串不对。

你有:

Provider=Microsoft.Jet.OLEDB.4.0 Data Source=" 
& Server.MapPath("TEST.xls") & "Extended Properties='Excel 8.0;HDR=No'"

您在 4.0 之后和 Extended 之前缺少一个分号

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" 
& Server.MapPath("TEST.xls") & ";Extended Properties='Excel 8.0;HDR=No'"

见http://connectionstrings.com

【讨论】:

我把它改成了:FLConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("TEST.xls") & "Extended Properties='Excel 8.0; HDR=No'" 但还是同样的错误! :-( 感谢网站,我现在就去看看。【参考方案2】:

这个连接字符串最适合我:-

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myExcel.xlsm;Extended Properties='Excel 12.0 Macro;HDR=YES';

【讨论】:

以上是关于更新 Excel 工作表(在经典 ASP/Vbscript 中)的主要内容,如果未能解决你的问题,请参考以下文章

用另一个 Excel 工作表单元格值动态更新一个 Excel 工作表的单元格值

Excel 一张工作表变动后,怎么自动更新另一张表中的数据

在 Excel 工作表单元格中导出数据

如何使用Excel VBA仅更新特定工作表中的链接,而不是整个工作簿?

在 Excel 中使用 UDF 更新工作表

Excel 宏,用于从工作簿中的主工作表更新其他工作表