엑셀 provider 및 엑셀 파일 DB처럼 활용하기
엑셀데이터를 엑셀버전 상관없이 가져오고싶을때.
Microsoft.ACE.OLEDB.12.0 프로바이더를 사용하면 깔끔하게 가져온다.
프로바이더 오류가 발생한다면 2007 Office System Driver: Data Connectivity Components 를 설치하면 된다.
m_strConn.Format(_T("PROVIDER=Microsoft.ACE.OLEDB.12.0;
"DATA SOURCE=%s;EXTENDED PROPERTIES=\"Excel 12.0;HDR=YES;\""), strFile);
//=========================================================
// ODBC 연결
//=========================================================
CDatabase dba;
BOOL bOpen = dba.OpenEx(strODBCConn, CDatabase::noOdbcDialog);
if(!bOpen)
{
MessageBox( _T("Source File이 엑셀 형식의 파일이 아닙니다!!"), _T("Word Learning") );
return;
}
CRecordset rs(&dba);
CString strQuery = _T("");
strQuery = "select num, word, desc from [word$]";
rs.Open(CRecordset::dynaset, strQuery);
int nCount = 0;
CString strWord = _T("");
CString strDesc = _T("");
while(!rs.IsEOF())
{
rs.GetFieldValue(_T("word"), strWord);
rs.GetFieldValue(_T("desc"), strDesc);
nCount++;
rs.MoveNext();
}
dba.Close();