K>Кстати на CodeGuru в разделе VC++ / Database есть хороший пример работы с Экселем. И к нему полезные коментарии. :-)
А вот пример работы с Экселем из Дао, который родился у меня из вышеназванного источника. Здесь в CListCtrl m_list набиваются данные из файла Import.xls — лист Import.
try
{
CDaoDatabase* pDB = new CDaoDatabase; pDB->Open("Import.xls", TRUE, TRUE, "Excel 5.0;");
CDaoRecordset rs(pDB) ;
rs.Open (dbOpenDynaset, "select * from [Import$]");
rs.MoveLast();
CString str;
short nFields = rs.GetFieldCount();
for ( int i = 0; i < nFields; i++ )
{
CDaoFieldInfo fieldinfo;
rs.GetFieldInfo( i, fieldinfo );
m_list.InsertColumn( i, fieldinfo.m_strName, LVCFMT_LEFT, 100 );
}
rs.MoveFirst();
int count = 0, pos = 0;
while (! rs.IsEOF() )
{
for ( int i = 0; i < nFields; i++ )
{
COleVariant var0;
var0.Clear();
rs.GetFieldValue( i, var0 );
switch ( var0.vt )
{
case VT_BSTR: str = var0.bstrVal; break;
case VT_I4: str.Format ("%ld ", var0.lVal); break;
default: str.Format ("%.0f ", var0.dblVal);
}