我正在使用SQL Server的Openrowset
函数从excel文件中读取数据。
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=E:\IGM\Files\cis overview.xls;HDR=No;IMEX=1;','SELECT * FROM [CIS Overview$]')
但openrowset
并未显示所有列。
下面只是示例,我正在阅读的Excel文件有28列,27个没有数据,只有标题,而Openrowset
会忽略28。
col1 col2 col3
--------------
A X
B X
C X
. .
. .
Openrowset
未在结果集中返回col3
- 为什么?
它只显示col1,col2。
但是如果我在col2(任何单元格)中插入一些数据,结果集将包含所有三列。
如果之前没有数据,它会忽略最后一列吗?
我在查询中也包含HDR=NO
选项,但没有运气?
他们以任何方式获取结果集中的所有列吗?
任何帮助?
的问候,
答案 0 :(得分:1)
从工作表标签名称中删除空格:“CIS概述” - > “CIS_Overview”或“CISOverview”。
答案 1 :(得分:0)
如果您知道列数,可以尝试在查询中指定是否为Excel列表:
'SELECT * FROM [CIS Overview$A:Z]'
这里的列从'A'到'Z'。