我刚才在论坛里搜索了一下,很多帖子,我贴了一段代码CString strFilePath = L"111.xls";
COleVariant   
covTrue((short)TRUE),   
covFalse((short)FALSE),   
covOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);    _Application       ExcelApp;       
Workbooks       wbsMyBooks;       
_Workbook       wbMyBook;       
Worksheets       wssMysheets;       
_Worksheet       wsMysheet;       
Range       rgMyRge;       
if(!ExcelApp.CreateDispatch("Excel.Application",NULL))       
{       
AfxMessageBox("创建Excel服务失败!");       
exit(1);       
}        wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true);   
wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t(strFilePath)));    wssMysheets.AttachDispatch(wbMyBook.GetWorksheets(),true);       
    
wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t("sheet3")),true);        rgMyRge.AttachDispatch(wsMysheet.GetCells(),true);        int       column       =       rgMyRge.GetColumn();   
int       row          =       rgMyRge.GetRow();   
VARIANT       tt; 
///////////////   
Range   cell;//增加一个对象 
cell.AttachDispatch(rgMyRge.GetItem(COleVariant((long)1),COleVariant((long)1)).pdispVal,true);   
tt   =   cell.GetValue2();//取值 
//////////// 
CString       yy; 
yy   =   tt.bstrVal; 
// AfxMessageBox(yy);//输出值  cell.ReleaseDispatch(); 
rgMyRge.ReleaseDispatch();       
wsMysheet.ReleaseDispatch();       
wssMysheets.ReleaseDispatch();       
wbMyBook.ReleaseDispatch();       
wbsMyBooks.ReleaseDispatch();       
ExcelApp.ReleaseDispatch(); 这个是通过com接口访问excel把,需要包含什么头文件和库呢,编译一堆错误,谢谢

解决方案 »

  1.   

    要导入Excel的类型库,用ClassWizard
      

  2.   

    是ODBC写入还是automation方式导入?
      

  3.   

    我用的是VS2005,如何导入,没有classwizard.
      

  4.   

    你这个应该是atuoautomation方式
    classwizard-->添加类库-->浏览类库文件-->选择excel安装文件夹里面的excel9.olb(如果是office2000版的话),其他版本记不得了-->选择需要的类(一般都是全选)-->添加
    在这之后要include一下excel9.h(如果是office2000版的话)其他版本的话,可以上网查询一下看看匹配的版本。
      

  5.   

    建议用ODBC
    http://www.vckbase.com/document/viewdoc/?id=421
      

  6.   

    唉,没人知道么,怎么用VS2005下用C++访问一个excel文件,谁能贴段code
      

  7.   

    ODBC不方面把,我看那个code了,应该不如com方式 
      

  8.   

    odbc只需客户方面有xls协议还是什么那个忘记了,大部分都有的
    而automation要求的似乎多些
      

  9.   

    classwizard-->automation->add class...-->from type library->...\office11\excel.exe
    (我所使用的是excel2003,对于其它版本的office,请选择excel*.olb) 然后选择你用到的。  
      

  10.   

    唉!vs2005没有classwizard,你们都还在用VC6么?请问2005如何导入,谢谢
      

  11.   

    终于导入了,唉,包含什么头文件啊,excel9.h excel8.h都不行
      

  12.   

    唉,这个到底怎么用啊,郁闷死了,
    _Application               ExcelApp;               
    Workbooks               wbsMyBooks;               
    _Workbook               wbMyBook;               
    Worksheets               wssMysheets;               
    _Worksheet               
    这些东西到底要包含什么头文件啊,哪个大侠给指点一下撒。
      

  13.   

    说是有一个excel8.h excel8.cpp,可是我导入以后只有一堆头文件,没有增加cpp
      

  14.   

    在stdafx.h里面添加 #import "...\\excel9.tlb" 具体哪个文件要看实际情况,也可能是dll、exe等有类型库的文件,无需再添加任何头文件,因为导入之后会产生excel.tlh和excel.tli文件,相当于头文件。
    使用过程很简单:
    _Application* pExcelApp = NULL;
    CoCreateInstance(..., &pExcelApp); // 这里启动EXCEL实例
    有了pExcelApp,你能导航到任何其它对象,包括_Worksheet等等
      

  15.   

    #include "excel.h"
    #include "comdef.h"
      

  16.   

    唉,这个到底怎么用啊,郁闷死了, 
    _Application                               ExcelApp;                               
    Workbooks                               wbsMyBooks;                               
    _Workbook                               wbMyBook;                               
    Worksheets                               wssMysheets;                               
    _Worksheet                               
    这些东西到底要包含什么头文件啊,哪个大侠给指点一下撒。
    你在导入类的时候会在你的根目录上有相关的文件的,包括近来就好了,你用的是excel2k我不知道是什么,excel xp以上都是CApplication CWorkBook,CWorksheets,CWorksheet