Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在TSQL中引用没有标题的Excel列_Tsql_Excel_Adodb_Vba - Fatal编程技术网

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

如何在TSQL中引用没有标题的Excel列,tsql,excel,adodb,vba,Tsql,Excel,Adodb,Vba,我深入到文档中,但由于我没有找到任何信息(事实上,我发现了与其他一些SO问题的相似之处,但不是我想要的),我请求你们帮助我: 我正在通过ADODB连接执行tsql查询,以将数据从Excel文件(*.xlsx)检索到另一个文件中。 该文件的组成如下: Header1 Header2 Header3 --------- --------- --------- A1 B1 C1 A2 B2

我深入到文档中,但由于我没有找到任何信息(事实上,我发现了与其他一些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:我对这些技术了解不多,所以我可能对术语有误。

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

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

然后将它们映射到所需的变量?我的意思是-你以后在代码中如何处理
rs

不是我的答案,而是坐在我旁边的同事的答案;)


(未经测试)

是的,我已经做过了,而且很有效,但我想在这里进行一些优化:)它几乎可以完美地工作,但这就足够了,为我感谢你的同事;)
Set rs = .Execute("SELECT F2, F1, F3 FROM [Sheet1$]")