Database

ADO로 xlsx 파일을 사용하기 위한 설정 값

toyship 2014. 6. 13. 17:46
반응형

원본

http://delphi.borlandforum.com/impboard/impboard.dll?action=read&db=del_tip&no=285

 

 

 

 

PC에 오피스가 설치되어있지 않은 경우 Access Database Engine을 MS 사이트에서 다운받아서 설치하면 ADO에서 엑셀파일을 사용할 수가 있습니다. 

※ Microsoft Access Database Engine 2010 Download Link 
 . Microsoft Access Database Engine 2010 재배포 가능 패키지 Download 
 . Microsoft Access Database Engine 2010, 32비트 버전 서비스 팩 Download 
 . Microsoft Access Database Engine 2010, 64비트 버전 서비스 팩 Download 

일반적으로 xls 파일을 사용하기 위해서는 ADO 컴퍼넌트의 ConnectionString에 아래와 같이 설정하죠. 

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=<File Name>;Extended Properties="Excel 8.0;HDR=YES;" 

Office 2010 기준으로 xlsx 파일을 ADO에서 사용하기위한 설정은 다음과 같습니다. 

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=<File Name>;Extended Properties="Excel 14.0;Imex=1;HDR=YES;" 

위의 설정으로 엑셀을 불러올 때 정상적으로 되지않고 "설치 가능한 ISAM이 없습니다."" 라는 오류가 나는 경우가 있습니다. 
이 경우는 레지스트리에 엑셀 14.0에 관련된 정보가 없어서 그런데 아래와 같이 설정하면 정상적으로 xlsx 파일을 불러올 수 있습니다. 

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=<File Name>;Extended Properties="Excel 8.0;Imex=1;HDR=YES;" 

물론 위의 설정으로 xls 파일도 불러올 수 있습니다. 

※ 엑셀에 열 머리글이 포함되어 있으면 HDR=YES, 포함되어있지않으면 HDR=NO로 설정. 
※ IMEX = 0: Export mode, 1: Import mode, 2: Linked mode (full update capabilities)

반응형