_Application app; _Workbook book;
_Worksheet sheet;
Workbooks books;
Worksheets sheets;
Range range; // often reused variable
LPDISPATCH lpDisp; COleVariant covTrue((short)TRUE),
covFalse((short)FALSE),
covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
try
{
// Initialize OLE libraries if( !app.CreateDispatch("Excel.Application") )
{
AfxMessageBox("Couldn't CreateDispatch() for Excel");
return;
}
app.SetVisible(false);
// app.SetUserControl(true); // Get an IDispatch pointer
lpDisp = app.GetWorkbooks();
ASSERT(lpDisp); // Attach the IDispatch pointer
books.AttachDispatch(lpDisp); // to the books object.
lpDisp = books.Open(CGlobal::sExcFilePath,covOptional,
covOptional,covOptional,covOptional,covOptional,
covOptional,covOptional,covOptional,covOptional,
covOptional,covOptional,covOptional,covOptional,
covOptional);
ASSERT(lpDisp); // Return workbook's IDispatch pointer
book.AttachDispatch(lpDisp);
lpDisp = book.GetSheets();
ASSERT(lpDisp); sheets.AttachDispatch(lpDisp);
lpDisp = sheets.GetItem( COleVariant((short)(1)) ); // get first sheet of book
ASSERT(lpDisp); // Get Current sheet used
sheet.AttachDispatch(lpDisp);
lpDisp = sheet.GetUsedRange();
ASSERT(lpDisp); // Search....
Range usedRange;
usedRange.AttachDispatch(lpDisp); // Get gross rows and columns used
lpDisp = usedRange.GetRows();
ASSERT(lpDisp); range.AttachDispatch(lpDisp);
long iRowNum = range.GetCount(); // gross rows
lpDisp = usedRange.GetColumns();
ASSERT(lpDisp); range.AttachDispatch(lpDisp);
long iColNum = range.GetCount(); // gross columns // Get start row and column
// based 1
long iStartRow = usedRange.GetRow();
long iStartCol = usedRange.GetColumn(); usedRange.ReleaseDispatch(); // Read Cell value and comparing the value that you want to delete it
CString esType, esBrand, esLotNo, esPack, esCount, esMemo; for(long i = iStartRow+1; i <= iRowNum; i++)
{
COleVariant vResult ;
CString index;
CString s; // 第一列 型号(long)1
index = "A";
s.Format("%d",i);
index = index + s; lpDisp = sheet.GetRange( COleVariant(index), COleVariant(index) );
ASSERT(lpDisp);
range.AttachDispatch(lpDisp);
vResult = range.GetValue2();
Match(esType,vResult); // Get esType // 第二列 品牌(long)2
index = "B";
index = index + s; lpDisp = sheet.GetRange( COleVariant(index), COleVariant(index) );
range.AttachDispatch(lpDisp);
vResult = range.GetValue2();
Match(esBrand, vResult);

} }
catch(COleException *e)
{
char buf[1024];
sprintf(buf,"COleException. SCODE: %08lx.",(long)e->m_sc);
::MessageBox(NULL,buf,"COleException", MB_SETFOREGROUND | MB_OK);
}
catch(COleDispatchException *e)
{
char buf[1024];
sprintf(buf,"COleDispatchException. SCODE: %08lx, Description: \" %s \".",
(long)e->m_wCode, (LPSTR)e->m_strDescription.GetBuffer(512));
::MessageBox(NULL,buf,"COleDispatchException",MB_SETFOREGROUND | MB_OK);
}
catch(...)
{
::MessageBox(NULL,"General Exception caught.","Catch-All",MB_SETFOREGROUND | MB_OK);
}

book.Save();
book.Close( covOptional,covOptional,covOptional);
books.Close(); range.ReleaseDispatch();
sheet.ReleaseDispatch();
sheets.ReleaseDispatch();
book.ReleaseDispatch();
books.ReleaseDispatch();
app.ReleaseDispatch();
app.Quit();
_Application app; _Workbook book;
_Worksheet sheet;
Workbooks books;
Worksheets sheets;
Range range;
知道怎么用吧?