如何在SQL中引用没有标题的Excel列

时间:2013-05-02 12:32:49

标签: tsql excel-vba adodb vba excel

我潜入了文档,但由于我没有找到任何信息(嗯,实际上我发现了与其他一些SO问题的相似之处,但不是我想要的),我要求你们帮助我:

我正在通过ADODB连接执行tsql查询,以便将Excel文件(* .xlsx)中的数据检索到另一个。 该文件组成如下:

 Header1     Header2     Header3
---------   ---------   ---------
    A1          B1          C1
    A2          B2          C2
    A3          B3          C3
   ....        ....        ....    

我想要检索标题,所以这里是整个程序的一部分,包含连接字符串

Dim con As ADODB.Connection
Dim rs As ADODB.Recordset
Set con = New ADODB.Connection
Set rs = New ADODB.Recordset

With con
    .Provider = "Microsoft.ACE.OLEDB.12.0"
    .ConnectionString = "Data Source=path\file.xlsx; _
         Extended Properties=""Excel 12.0 Xml;HDR=NO;IMEX=1"""
    Set rs = .Execute("Select * From [Sheet1$]")
    .Close
End With

这里我检索所有列,但是如果我想要列B,然后是列A,然后是列C,例如,类似的东西:

Set rs = .Execute("Select colb, cola, colc From [Sheet1$]")

问题在于我不知道应该替换colb,cola,colc的术语,因为我不能使用列的标题

此致

PS:我对这些技术知之甚少,所以我的术语可能不对。

2 个答案:

答案 0 :(得分:3)

不是我的回答,而是来自坐在我旁边的同事;)

Set rs = .Execute("SELECT F2, F1, F3 FROM [Sheet1$]")

(未经测试)

答案 1 :(得分:0)

您是否尝试过读取文件中的列:

Set rs = .Execute("SELECT * FROM [Sheet1$]")

然后将它们映射到所需的变量?我的意思是 - 您之后在代码中对rs做了什么?