使用ASP / VBScript写入Excel文件

时间:2011-10-11 21:25:57

标签: forms excel vbscript asp-classic

我正在尝试从HTML表单中获取信息并使用ASP / VBScript(而不是VB.NET)输入到Excel文件(xlsx)中。我在Java和PHP方面有一些经验,但对VB世界来说是新手。 Sofar我找到了从GET / POST方法获取数据的方法。现在我正在尝试创建与excel文件的ADO连接。 这是我目前的代码:

Dim cn as ADODB.Connection
Set cn = New ADODB.Connection
With cn
    .Provider = "Microsoft.ACE.OLEDB.12.0"
    .ConnectionString = "Data Source=EXCEL_FILE.xlsx;" & _"Extended Properties=Excel 12.0 Xml;HDR=YES"
    .Open
End With

我从这里得到了连接字符串:connectionstrings.com 并试图坚持本指南:http://support.microsoft.com/kb/257819/en-us 但直到现在还没有运气。 所以这是我的问题:

1)这一般是正确的想法吗?例如,从POST获取数据,然后打开与ADO连接到excel文件的连接,并在连接对象上添加查询信息?

2)代码中有任何明显的缺陷吗?

3)如果有人能够概述解决方案,将HTML表格中的数据写入Excel文件,那就太棒了。

提前致谢。

编辑: 好的这是我尝试的代码:

Dim cn
Set cn = Server.CreateObject("ADODB.Connection")
With cn
    .Provider = "Microsoft.ACE.OLEDB.12.0"
    .ConnectionString = "Data Source=EXCEL_FILE.xlsx;Extended Properties=""Excel 12.0 Xml;HDR=YES"""
'From : http://www.connectionstrings.com/excel-2007
    .Open
End With

一旦我在cn上调用“Open”,它就会给我一个500内部错误。我不确定我是否犯了一个明显的错误,但由于我不知道在哪里找到错误日志,我不知道从哪里开始查找。

1 个答案:

答案 0 :(得分:1)

1 - 如果您必须使用Excel 作为数据库,是的,它是正确的。但是,如果您需要数据库,则应使用数据库,而不是Excel工作表 2 - VBScript不支持早期绑定。您应该定义没有数据类型的变量,应该使用CreateObject创建对象。并且您需要对连接字符串(引号)进行一些更改 的 e.g。

Dim cn
Set cn = Server.CreateObject("ADODB.Connection")
With cn
    .Provider = "Microsoft.ACE.OLEDB.12.0"
    .ConnectionString = "Data Source=EXCEL_FILE.xlsx;Extended Properties=""Excel 12.0 Xml;HDR=YES"""
    'From : http://www.connectionstrings.com/excel-2007
.Open
End With
'
' Add new records etc.
'
cn.Close
Set cn = Nothing

3 - 添加新记录(放置而不是'Add new records etc.)的示例从HTML表单(post方法)中获取值。

Dim rs
Set rs = Server.CreateObject("Adodb.Recordset")
With rs
    .Open "[Sheet1$]", cn, 1, 3
    .AddNew 
    .Fields(0).Value = Request.Form("Param1") 'Column A1 (or with name rs.Fields("col1").Value = exp )
    .Fields(1).Value = Request.Form("Param2") 'Column B1
    .Update
    .Close
End With
Set rs = Nothing