2011-05-23 60 views
1

我正在使用Openrowset函数SQL Server从Excel文件中读取数据。OpenRowSet - SQL Server

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只是标题,28被Openrowset忽略。

col1 col2 col3 
-------------- 
A   X 
B   X 
C   X 
.   . 
.   . 

Openrowset没有在结果集返回col3 - 为什么?

它只显示col1,col2。

但是,如果我插入一些数据在col2(任何单元格),结果集将具有所有三列。

如果以前没有数据,它会忽略最后一列吗?

我还在查询中包含HDR=NO选项,但没有运气?

他们有什么办法获得结果集中的所有列吗?

有帮助吗?

问候,

回答

0

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

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

这里列从“A”去“Z”。

+0

仍然是同样的问题。由于28栏是他们,我试过A:AB。仍然没有显示最后一列。如果我用A:K,A:Z测试它的工作。但与A:AB不显示最后一栏。 – Humdum 2011-05-23 05:14:21

1

删除工作表选项卡名称中的空格:“CIS概述” - >“CIS_Overview”或“CISOverview”。

相关问题