2010-12-07 5 views
0

openrowset 함수를 사용하여 Excel 시트를 읽는 중입니까?Openrowset 기능을 사용하여 Excel에서 값을 읽는 방법?

내 Excel 시트에는 일반 유형 열에 숫자 값이 있습니다. 어떤 이유로 이러한 값은 값이 있더라도 null 값으로 가져옵니다. 왜 이런 일이 일어나고 있는지 잘 모르겠습니다. 필드 형식을 살펴본 결과 Excel에서 일반으로 설정되었으므로 Text로 설정하려고 시도했지만 도움이되지 않았습니다.

엑셀 원본의 내용을 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에서 찾을 수있다 : 값 0은 모든 행을 의미

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

.

+0

값을 0으로 설정하면 모든 숫자 값이 읽히지 만 동일한 열의 AlphaNumeric 값을가집니다. 사실 열에는 영숫자, 숫자 및 영문자 만 있습니다. 여기서 뭐라고 제안하나요? – Jango

+0

IMEX = 1 인 경우입니까? 필자는 매우 혼합 된 데이터와 SQL Server 2008을 사용해 보았습니다. – Fionnuala

+0

고마워요. 저도 잘 됐어요. 이전에 IMEX = 1로 시도하지 않았습니다. 다시 한번 감사드립니다. – Jango

관련 문제