我有一张Excel工作表,其中第一行包含所有列的标题。我想要第一行中的所有名字。
用于读取第一行中所有条目的SQL命令是什么?
如果可能,我想定义最大限制。
另外:我想枚举所有列名。
答案 0 :(得分:3)
你需要提到“HDR = No;”在你的连接字符串中。然后您可以使用以下查询:
Select Top 1 * from [SheetName$]
“HDR = No”将指定第一行不包含列名。
据说,我不知道是否有一个SQL语句来从表中获取列名。如果有,则可以在连接字符串中使用HDR = Yes并使用该SQL语句。
答案 1 :(得分:3)
我希望我理解这一点......但我认为你说要从表中选择列名:
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = [YourTableName]
答案 2 :(得分:2)
这对我使用保存的工作簿在Excel中有用,它枚举了列(字段)名称。
Sub ListFieldADO()
strFile = Workbooks(1).FullName
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile _
& ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";"
Set cn = CreateObject("ADODB.Connection")
cn.Open strCon
''You can also use the name of a named range
Set rs = cn.OpenSchema(adSchemaColumns, _
Array(Empty, Empty, "Sheet1$"))
While Not rs.EOF
Debug.Print " " & rs!Column_Name
rs.MoveNext
Wend
rs.Close
Set rs = Nothing
End Sub
答案 3 :(得分:1)
Select Top 1 * into #temp from [SheetName$]
use tempdb
sp_help #temp.
这样,您就可以获得#temp
表的列名。同样,您必须将数据库更改为:
use yourDBName
将数据放入临时表中并读取临时表的属性,然后从中获取列名列表。