2010-12-07 56 views
0

我正在使用openrowset函数读取excel表单吗?如何使用Openrowset函数从Excel读取值?

我的Excel工作表在常规类型列中有数值。由于某些原因,这些值虽然有值,但会作为空值提交。我不知道为什么会发生这种情况。我查看了字段的格式,并将它们设置为Excel中的常规,我尝试将它们设置为文本,但这没有帮助。

我试图将内容从excel源文件转换为csv格式的文本文件,并且出于某种原因包含数值的文本字段作为空白(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

这与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意味着所有行。

+0

我将该值设置为0,它读取所有数值,但现在正在处理来自同一列的AlphaNumeric值。实际上,列仅包含字母数字,仅限数字和字母。你在这里建议什么? – Jango 2010-12-07 18:18:10