very simple, very basic example
Code:
// Compile: cl.exe /MT excel.cpp /link /IGNORE:4089
#pragma comment( lib, "ole32.lib" ) // Search for ole32.lib while linking
#pragma warning(disable : 4995) // Disable deprecated warning
#include <afxdb.h>
#include <iostream.h>
int main(void)
{
CDatabase database;
CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"; // exactly the same name as in the ODBC-Manager
CString sSql;
CString sColumn1, sColumn2;
CString sExcelFile = "MyExcel.XLS";
// Build the creation string for access without DSN
sSql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",
sDriver, sExcelFile, sExcelFile);
// Create the spreadsheet (i.e. Excel sheet)
if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )
{
// Create table structure
sSql = "CREATE TABLE MYTABLE (Name1 TEXT(15), Name2 TEXT(15))";
database.ExecuteSQL(sSql);
// Add 3 records to excel table
sSql.Format("INSERT INTO MYTABLE VALUES ('%s','%s')","Bob", "Freddy" );
database.ExecuteSQL(sSql);
sSql.Format("INSERT INTO MYTABLE VALUES ('%s','%s')","Jimmy", "Eddy" );
database.ExecuteSQL(sSql);
sSql.Format("INSERT INTO MYTABLE VALUES ('%s','%s')","Frank", "Walter" );
database.ExecuteSQL(sSql);
CRecordset recset( &database );
// Build the SQL statement
sSql = "SELECT * FROM MYTABLE";
// Execute the query
recset.Open(CRecordset::none,sSql,CRecordset::readOnly);
// Loop through each record
for (recset.MoveFirst(); !recset.IsEOF(); recset.MoveNext())
{
recset.GetFieldValue(0,sColumn1);
recset.GetFieldValue(1,sColumn2);
cout << sColumn1 << " " << sColumn2 << endl;
}
database.Close();
}
return 0;
}