본문 바로가기
프로그래밍/C#

C# OLEDB로 엑셀 읽기 시 문자 또는 숫자가 읽히지 않을 때

by zoo10 2014. 9. 17.

엑셀 읽어서 체크드 리스트에 바인딩하고 있었다.

테스트로 만든 엑셀에 데이터를 1열에 1, 2, 3, 4, AAA, 5, 6, 7 이렇게 넣었다.

그런데 AAA가 빈 문자열로 읽혀지는 것이었다.

그래서 구글링을 했더니 역시나 해답은 있었다.

OLEDB 연결자에 IMEX=1을 추가해 주면 된다.


엑셀을 읽을 때, 처음 몇 로우를 읽은 후 얘가 문자열 타입인지 숫자 타입인지 결정한다고 한다. 그럴 경우, 다른 타입의 데이터가 들어가 있으면 위와같은 문제가 발생하는 것이었다.

내 경우는 1, 2, 3, 4 읽었더니 "어!! 숫자네" 하다가 AAA가 나오니 무시한 거였드랬다.

즉, 어땠든 IMEX는 Default가 0이다. IMEX=1로 하면 되더라는 말씀