如何在TSQL中引用没有标题的Excel列
我深入到文档中,但由于我没有找到任何信息(事实上,我发现了与其他一些SO问题的相似之处,但不是我想要的),我请求你们帮助我: 我正在通过ADODB连接执行tsql查询,以将数据从Excel文件(*.xlsx)检索到另一个文件中。 该文件的组成如下:如何在TSQL中引用没有标题的Excel列,tsql,excel,adodb,vba,Tsql,Excel,Adodb,Vba,我深入到文档中,但由于我没有找到任何信息(事实上,我发现了与其他一些SO问题的相似之处,但不是我想要的),我请求你们帮助我: 我正在通过ADODB连接执行tsql查询,以将数据从Excel文件(*.xlsx)检索到另一个文件中。 该文件的组成如下: Header1 Header2 Header3 --------- --------- --------- A1 B1 C1 A2 B2
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:我对这些技术了解不多,所以我可能对术语有误。您是否尝试阅读文件中的列:
Set rs = .Execute("SELECT * FROM [Sheet1$]")
然后将它们映射到所需的变量?我的意思是-你以后在代码中如何处理
rs
?不是我的答案,而是坐在我旁边的同事的答案;)
(未经测试)是的,我已经做过了,而且很有效,但我想在这里进行一些优化:)它几乎可以完美地工作,但这就足够了,为我感谢你的同事;)
Set rs = .Execute("SELECT F2, F1, F3 FROM [Sheet1$]")