c+++はexcelのコードを読みます。詳しくは分かります。


c+++はどうやってエクセルを読みますか?C++ODBC操作エクセル全過程
ODBCでExcelテーブルファイルを直接読み、書きたい場合は、まずODBCにExcelテーブルファイルがインストールされているドライバ「MICROFT EXCEL DRIVER(*.XLS)」を確保すること。次に、次のステップに従って、
1.StdAfx.hファイルに追加する:

#include <afxdb.h> 
#include <odbcinst.h>
2.ODBCでExcelファイルを直接作成する(暫定ファイル名:Demo.xls)

//     Excel  
void CRWExcel::WriteToExcel()
{
CDatabase database;
CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"; // Excel    
CString sExcelFile = "c:\\demo.xls"; //     Excel  
CString sSql;
TRY
{
//           
sSql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",sDriver, sExcelFile, sExcelFile);
//       ( Excel    )
if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )
{
//      (  、  )
sSql = "CREATE TABLE demo (Name TEXT,Age NUMBER)";
database.ExecuteSQL(sSql);
//     
sSql = "INSERT INTO demo (Name,Age) VALUES ('   ',26)";
database.ExecuteSQL(sSql);
sSql = "INSERT INTO demo (Name,Age) VALUES ('   ',22)";
database.ExecuteSQL(sSql);
sSql = "INSERT INTO demo (Name,Age) VALUES ('  ',27)";
database.ExecuteSQL(sSql);
} 
//      
database.Close();
}
CATCH_ALL(e)
{
TRACE1("Excel      : %s",sDriver);
}
END_CATCH_ALL;
}
3.ODBCでExcelファイルを直接読み込む(仮ファイル名:Demo.xls)

//   Excel  
void CRWExcel::ReadFromExcel() 
{
CDatabase database;
CString sSql;
CString sItem1, sItem2;
CString sDriver;
CString sDsn;
CString sFile = "Demo.xls"; //      Excel   
//        Excel   "Microsoft Excel Driver (*.xls)" 
sDriver = GetExcelDriver();
if (sDriver.IsEmpty())
{
//     Excel  
AfxMessageBox("    Excel  !");
return;
}
//           
sDsn.Format("ODBC;DRIVER={%s};DSN='';DBQ=%s", sDriver, sFile);
TRY
{
//      ( Excel  )
database.Open(NULL, false, false, sDsn);
CRecordset recset(&database);
//          .
sSql = "SELECT Name, Age "
"FROM demo "
"ORDER BY Name ";
//       
recset.Open(CRecordset::forwardOnly, sSql, CRecordset::readOnly);
//       
while (!recset.IsEOF())
{
//  Excel    
recset.GetFieldValue("Name ", sItem1);
recset.GetFieldValue("Age", sItem2);
//      
recset.MoveNext();
}
//      
database.Close();
}
CATCH(CDBException, e)
{
//           ...
AfxMessageBox("     : " + e->m_strError);
}
END_CATCH;
}
//   ODBC Excel  
CString CRWExcel::GetExcelDriver()
{
char szBuf[2001];
WORD cbBufMax = 2000;
WORD cbBufOut;
char *pszBuf = szBuf;
CString sDriver;
//           (   odbcinst.h )
if (!SQLGetInstalledDrivers(szBuf, cbBufMax, &cbBufOut))
return "";
//            Excel...
do
{
if (strstr(pszBuf, "Excel") != 0)
{
//   !
sDriver = CString(pszBuf);
break;
}
pszBuf = strchr(pszBuf, '\0') + 1;
}
while (pszBuf[1] != '\0');
return sDriver;
}
以上はc+++で、どのようにエクセルの詳しい内容を読み取りますか?