簡體   English   中英

使用ASP / VBScript寫入Excel文件

[英]Using ASP / VBScript to write to an Excel File

我正在嘗試從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/zh-cn但是到目前為止還算不上什么。 所以這是我的問題:

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上調用“打開”,就會給我500內部錯誤。 我不確定自己是否犯了一個明顯的錯誤,但是由於我不知道從哪里找到錯誤日志,所以我不知道從哪里開始尋找線索。

1-如果必須將Excel 用作數據庫 ,是的。 但是,如果您需要數據庫,則應使用數據庫,而不是Excel工作表。
2- VBScript不支持早期綁定。 您應該定義沒有數據類型的變量,應該使用CreateObject創建對象。 並且您需要對連接字符串(引號)進行一些更改。
例如

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 Form(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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM