글
원문 : http://blog.naver.com/kbk9879?Redirect=Log&logNo=120137136990
엑셀을 업로드할때 숫자와 문자를 병행하여 입력할때가 종종있다.
이번에 회사에서 일을 하다가 평소에 숫자값으로 들어가다가 갑자기 문자값도 들어갈 수 있다고
하여 별생각이 없었는데..
업로드할때 문자값이 나오지 않은 것이다..ㄷㄷㄷ
구글링을 통해 확인결과..
ODBC에서 엑셀내용을 저장할때 1~8번째 행을 확인하여 그 FIELD값이 전부 숫자일경우 8번째 행
이후의 값이 문자이면 모두 NULL값으로 처리가 된단다..ㄷㄷㄷ
결국 해결책을 찾을려고 다시 구글링을 하였는데 다들 IMEX=1 이렇게 하면 된다고 한다..
하지만 난 이미 적용시켰는데도 불구하고 되지 않고 있으니..
나의 ODBC connect부분이다.
string strProvider = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + strFilePath + "; Extended Properties=\"Excel 8.0;HDR=yes;IMEX=1\"";
oleDBCon = new OleDbConnection(strProvider);
......이로써 구글링으로 해결책을 찾는데 3시간이나 보냈다가..
어느 PDF로 찾은 결과..레지스트리에 있는 TypeGuessRows의 값을 수정하면 된다는 글을
보게 되었다..
TypeGuessRows의 default값이 8로 되어 있는 것을 확인할 수 있는데..
이 값으로 ImportMixedTypes에 정의되어진 type으로 정해진단다..
결국 TypeGuessRows의 값을 늘리고 다시 업로드를 해보니 잘된다..
TypeGuessRows의 값을 늘릴때의 부작용에 대해서는 아직 확인을 못하고 있어서..우선
이렇게 적용시켜놓고 추후에 문제가 발생하면 확인해봐야겠다..ㅠㅠ
[해당 레지스트리가 존재하는 위치]
WINDOWS XP
HKEY-LOCAL-MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel
WNDIOWS SERVER 2008(32비트)
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\
Access Connectivity Engine\Engines\Excel
WINDOWS SERVER 2008(64비트)
HKEY-LOCAL-MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\Excel
[출처] [ASP.NET] 엑셀 업로드시 포맷형식(IMEX)|작성자 수호령
'IT > .NET' 카테고리의 다른 글
.net framework 4.0client profile & log4net (0) | 2012.12.05 |
---|---|
ApplicationPool - Classic Mode VS integrated Mode (0) | 2012.12.04 |
IIS 6.0에서 .Net 4.0 실행하기 (0) | 2012.06.26 |
How To Add HTML Alternative Content (0) | 2012.06.08 |
ASP.NET(C#)에서 ffmpeg 사용하기 (0) | 2012.06.08 |
RECENT COMMENT