【问题标题】:How I can work with Excel 2007 and Excel 2003 (Excel Chart) from win32 application using COM?如何使用 COM 从 win32 应用程序处理 Excel 2007 和 Excel 2003(Excel 图表)?
【发布时间】:2011-06-27 04:28:24
【问题描述】:

如何使用 COM 从 win32 应用程序处理 Excel 2007 和 Excel 2003(Excel 图表)? 我在哪里可以看到这个问题的任何示例(对于 Visual Studio 2003)或手册?

【问题讨论】:

    标签: c++ visual-c++ com atl charts


    【解决方案1】:

    使用#import,您可以让VC++ 生成大量智能指针代码用于与COM 交互。这是我从 C++ 实现 Office 自动化的首选方法。将此添加到源文件的顶部以生成文件并包含适当的生成文件:

    #import "C:\\Program Files\\Common Files\\Microsoft Shared\\OFFICE11\\MSO.DLL"
    #import "C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE"
    

    显然您可能需要更改文件路径。您还可以使用 typelib ID,如果您处于多开发人员环境中,这可能是一个更好的解决方案。还有名字冲突等其他问题,你应该看看http://www.codeproject.com/KB/wtl/WTLExcel.aspx的文章,它总结得很好。

    现在您可以通过_com_ptr<T>_bstr_t_variant_t 和其他来自 VC++ 的帮助程序类来使用 Excel。

    【讨论】:

    • 您是否有任何使用 Excel 图表的源示例,例如,操作数据、更改图表类型和任何功能?
    • 对不起,我没有任何例子给你。如果这是我的项目,虽然我可能会考虑在 VBA 或 C# 中玩耍,以首先掌握图表 API。 API 与您通过 COM 使用的 API 完全相同,除了 VBA 和 C# 必须更快、更宽容地进行实验。有关Chart 文档,另请参阅 MSDN。
    • 我找到了示例,但它无法正常工作。如果您有空闲时间,请查看stackoverflow.com/questions/5000657/…。谢谢:)
    【解决方案2】:
    猜你喜欢
    • 2011-06-25
    • 1970-01-01
    • 2012-03-18
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 2011-07-25
    • 1970-01-01
    相关资源
    最近更新 更多