如何使用Openrowset函数从Excel读取值?

时间:2010-12-07 16:50:39

标签: sql sql-server sql-server-2005 tsql openrowset

我正在使用openrowset函数阅读excel表?

我的Excel工作表在“常规类型”列中具有数值。由于某些原因,即使这些值具有值,也会将这些值作为空值引入。我不确定为什么会这样。我查看了字段的格式,并将它们设置为Excel中的常规,我尝试将它们设置为文本,但没有帮助。

我试图将excel源中的内容带到csv格式的文本文件中,由于某种原因,包含数值的Text字段显示为空(NULL)。

非常感谢有关此问题的任何意见。

SET @Cmd = 'INSERT INTO Table_01
                SELECT * FROM OPENROWSET(''Microsoft.Jet.OLEDB.4.0'', ''Excel 8.0;Database=' + @ExcelFilePath + ''',
                ''SELECT * FROM [Sheet1$]'')'
    EXEC(@Cmd)

1 个答案:

答案 0 :(得分:1)

这与TypeGuessRows和IMEX:

有关
OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;HDR=YES;IMEX=1;Database=x.xls',
'SELECT * FROM [Sheet2$]');

TypeGuesssRows可在以下网址找到:

HKEY_Local_Machine/Software/Microsoft/Jet/4.0/Engines/Excel/

值为0表示所有行。