OpenRowSet - SQL Server

时间:2011-05-23 04:33:32

标签: sql-server

我正在使用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选项,但没有运气?

他们以任何方式获取结果集中的所有列吗?

任何帮助?

的问候,

2 个答案:

答案 0 :(得分:1)

从工作表标签名称中删除空格:“CIS概述” - > “CIS_Overview”或“CISOverview”。

答案 1 :(得分:0)

如果您知道列数,可以尝试在查询中指定是否为Excel列表:

'SELECT * FROM [CIS Overview$A:Z]'

这里的列从'A'到'Z'。