2010-11-11 69 views
0

我想允許用戶上傳具有9列和無限數量的行的xls文件。 我將運行everyline並將數據插入數據庫asp和ms-access db - 如何從xls文件導入數據

如何讀取xls文件?

+1

您是否有理由跑過每一行?如果不是,那麼很可能編寫一個將Excel插入到Access中的SQL語句。順便說一句ASP Classic或.Net? – Fionnuala 2010-11-11 20:04:49

+0

經典的ASP - 你能給我探討一下你說的嗎? – 2010-11-11 20:52:28

+0

我已經添加了一個例子。 – Fionnuala 2010-11-11 21:04:45

回答

0

在C#中,我必須加載一個Excel電子表格數據集 - 這讓我有...

Code Project Example

我使用選項1 - 首選的方法!希望這有助於...

邁克

+0

但我使用的經典ASP不是.NET – 2010-11-11 18:09:54

1

您可以通過打開ADO記錄集其拉在電子表格中的數據讀取XLS。

這個例子從一個電子表格名爲結算摘要包括第一行中的列名讀取數據..

Public Sub ReadSpreadsheet() 
    Const cstrFolder As String = "C:\Access\webforums" 
    Const cstrFile As String = "ExampleFinance.xls" 
    Dim strConnect As String 
    Dim strSql As String 

    Dim cn As Object 
    Dim rs As Object 
    Set cn = CreateObject("ADODB.Connection") 
    Set rs = CreateObject("ADODB.Recordset") 

    strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ 
     cstrFolder & Chr(92) & cstrFile & _ 
     ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";" 
    cn.Open strConnect 
    strSql = "SELECT * FROM [Billing Summary$] WHERE SomeField Is Not Null;" 
    rs.Open strSql, cn 

    Do While Not rs.EOF 
     '* do something with each row of data *' 
     'Debug.Print rs!SomeField ' 
     rs.MoveNext 
    Loop 

    rs.Close 
    Set rs = Nothing 
    cn.Close 
    Set cn = Nothing 
End Sub 

如果特定的連接字符串並不爲你工作,看的Excel連接的其他例子字符串在Connection strings for Excel

編輯:該示例在Access中工作。但你說ASP。如果從變量和常量聲明中刪除數據類型,我認爲它也可以工作:Dim strSql而不是Dim strSql As String

1

使用SQL語句從Excel更新Access的示例。

Set cn = CreateObject("ADODB.Connection") 

scn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\docs\dbto.mdb" 

cn.Open scn 

sSQL = "SELECT * INTO NewTable FROM " 
sSQL = sSQL & "[Excel 8.0;HDR=YES;IMEX=2;DATABASE=C:\Docs\From.xls].[Sheet1$]" 

cn.Execute sSQL, recs 

MsgBox recs 
相關問題