2010-12-07 3 views
0

Я читаю лист excel, используя функцию openrowset?Как читать значения из Excel с помощью функции Openrowset?

Мой лист Excel имеет числовое значение в столбце общего типа. По какой-то причине эти значения передаются как null, даже если они имеют значения. Я не знаю, почему это происходит. Я просмотрел формат полей, и они настроены на General в Excel, я попытался установить их в Text, и это не помогло.

Я попытался привести содержимое из источника 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

Это связано с 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

+0

Это когда у вас IMEX = 1? Я пробовал это с очень смешанными данными и SQL Server 2008, и он работает для меня. – Fionnuala

+0

Спасибо, Сработало и для меня. Раньше я не пробовал IMEX = 1. Еще раз спасибо. – Jango