我准备用COM操作Excel,用的开发环境是VS2005用MFC
参照的是这个例子:
http://support.microsoft.com/kb/308407
然后添加TypeLib类,添加:CApplication CRange CWorkbook CWorkbooks CWorksheet CWorksheets类
然后有错误,原因是没有定义的Application结构体,对比从网上下的代码,发现:
本应LPDISPATCH结果我创建的工程中是Application
这是怎么回事儿呢?
我用的是office 2007,难道这和office版本有关?COM 应该不会吧
我对COM不感冒,希望各位能给我答案。。
谢谢!!

解决方案 »

  1.   

    http://topic.csdn.net/t/20060309/09/4602265.html
    相关帖子~
      

  2.   

    这个贴子是2006年的可能是我office 2007版本的原因吧,自动化生成的代码得修改才可以,比如:
    1、Application
    2、CWorkSheet中要添加get_Range(VARIANT Cell1, VARIANT Cell2)
    然后才能通过,而且运行也正常。。
    COM真是搞不明白,我现在的工程向在添加向导时没有添加“自动化”,这又将成为一个问题
    谢谢!
      

  3.   

    另一问题:
    怎么样才能无声无息的保存Excel文件?put_Visible(TRUE);
    不显示Excel,也不显示“另存为”对话框。。
      

  4.   

    put_Visible(FLASE);
    put_DisplayAlerts(FALSE);
      

  5.   

    谢谢,我发现用C#做Exel同样是C#,非常的方便 ,这方面的资料很多,C++却很难找到确彻的资料。
    在MSDN里讲得也很少。。
    难道是我没有找对吗?COM应该怎么找呢?
      

  6.   

    C++通过com访问excel当然比C#要好啊,毕竟com本身是C++实现的,起码数据类型不用转换,基本
    1对1,资料当然也比C#多,你感觉少是因为: 1)C++访问COM比较底层和繁琐,所以用的人少,尤其是
    国内。 2)C++的资料多是英文的,其实MSDN中有很多,只不过你没发现而已,比如COM SDK文档。
      

  7.   

    你可以发个MSDN的链接给我吗?
    一直没有找到好的。。
    谢谢!!
      

  8.   

    http://msdn.microsoft.com/de-de/library/microsoft.office.interop.word.aspx这个是.NET的,可以查EXCEL VBA的说明,都是一样的。
      

  9.   

    http://msdn.microsoft.com/en-us/library/cc313152%28v=office.12%29.aspx