如题,打开一个Excel文件后,想逐个访问它的Sheet,请问怎样才能得到它的Sheet数?

解决方案 »

  1.   

    这是我的代码,发现执行到pWB = pApp->GetWorkbooks()->Open()是就出错了,不知道为什么?
    另外,怎么得到Sheet数啊?很急啊!!!!!CFileDialog *dlgOpen = new CFileDialog(true,NULL,NULL,OFN_HIDEREADONLY, 
    "Excel Files|*.xls",NULL);
    if(dlgOpen->DoModal() == IDOK)
    {
    //int iSheetCount;
    CString strMsg; _ApplicationPtr pApp = NULL;
    _WorkbookPtr pWB  = NULL;
    _WorksheetPtr pASheet  = NULL;
    SheetsPtr pSheets  = NULL;
    RangePtr pRange  = NULL; pApp.CreateInstance("Excel.Application"); _bstr_t bstrFile = _T(dlgOpen->GetFileName());

    pWB = pApp->GetWorkbooks()->Open(bstrFile,
    vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,
    vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing);

    pSheets = pWB->GetSheets();

    pASheet = pSheets->GetItem((short)1);
    pRange = pASheet->GetCells();
    pRange->PutItem((short)1,(short)1,(_variant_t)"David");

    pWB->Close((_variant_t)true,vtMissing,vtMissing);
    pApp->Quit(); return;
    }
      

  2.   

    _Application pExcelApp;
    _Workbook pExcelBook;
    _Worksheet pExcelSheet;
    Workbooks pExcelBooks;
    Worksheets pExcelSheets;
    我是用这个做的.worksheets里有一个GETCOUNT的.
    你打开失败的话初始化COM环境了没.
      

  3.   

    请问楼上的,怎么初始化COM环境