按钮代码如下:
_Application app; 
Workbooks books;
_Workbook book;
Worksheets sheets;
_Worksheet sheet;
Range range;
LPDISPATCH lpDisp;  //接口指针
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); 
if(!app.CreateDispatch("Excel.Application"))
{
this->MessageBox("不好意思,无法创建Excel应用!");
return;
}

books  = app.GetWorkbooks();
lpDisp = books.Open("E:\\H型钢.xls",
        covOptional, covOptional, covOptional, covOptional,
        covOptional, covOptional, covOptional, covOptional,
        covOptional, covOptional, covOptional, covOptional,
        covOptional, covOptional);
book.AttachDispatch(lpDisp);
sheets=book.GetSheets();
sheet=sheets.GetItem(COleVariant((short)1));
range=sheet.GetRange(COleVariant("A1"),COleVariant("A1"));

COleVariant rValue;
rValue=COleVariant(range.GetValue2());
rValue.ChangeType(VT_BSTR);
this->MessageBox(CString(rValue.bstrVal));

book.SetSaved(TRUE);
app.Quit();

解决方案 »

  1.   

    if(!app.CreateDispatch("Excel.Application"))
    {
    this->MessageBox("不好意思,无法创建Excel应用!");
    return;
    }
    总是运行到这个循环里去,弹出方框,我上按照http://xfrog.blogbus.com/logs/24923682.html#cmt
    里面做的啊,只不过我的是2003版本的excel,请问大侠我应该做其他的什么操作吗
      

  2.   

     
        if  (!AfxWinInit(::GetModuleHandle(NULL),  NULL,  ::GetCommandLine(),  0))  
        {  
            cerr  <<  _T("Fatal  Error:  MFC  initialization  failed")  <<  endl;  
            nRetCode  =  1;  
        }  
      
          if  (CoInitialize(NULL)  !=  S_OK)    
           {    
               AfxMessageBox("初始化COM支持库失败!");    
                return  -1;  
            }试试
      

  3.   

    已经初始化了啊
    BOOL CMydll0302App::InitInstance() 
    {
    // TODO: Add your specialized code here and/or call the base class
    CoInitialize(NULL);

    if(!AfxOleInit())
    {
    AfxMessageBox("初始化Ole出错!");
    return FALSE;
    } CoUninitialize();
    return CWinApp::InitInstance();
    }
      

  4.   

    你的程序是在Dlg这个类里面还是单独的线程?是线程的话需要重新初始话COM一下!
      

  5.   

    就在Dlg这个类里的radiobutton的处理函数里
      

  6.   

    已经初始化了啊
    BOOL CMydll0302App::InitInstance()  
    {
    // TODO: Add your specialized code here and/or call the base class
    CoInitialize(NULL);if(!AfxOleInit())
    {
    AfxMessageBox("初始化Ole出错!");
    return FALSE;
    }CoUninitialize();//这个注释掉看看
    return CWinApp::InitInstance();
    }