这篇文章讲述了如何使用MFC 将Excel 工作表插入到SDI 视图中。文章包括插入工作表并将文字添加到A1 单元格的详细步骤,每一步都有详细说明。 虽然你可以直接将代码插入到你的程序中,但理解这些例子你才会真正受益。 更多信息 以下是创建这个MFC 应用程序的步骤: 1.使用AppWizard 创建一个新的MFC AppWizard(EXE)工程,命名为"Embed_Excel" 2.选择单文档视图(SDI)结构,在第3 步中需要选中Container,以提供容器支持。 其它都为默认。 产生以下类: 应用类: CEmbed_ExcelApp in Embed_Excel.h and Embed_Excel.cpp 框架类: CMainFrame in MainFrm.h and MainFrm.cpp 文档类: CEmbed_ExcelDoc in Embed_ExcelDoc.h and Embed_ExcelDoc.cpp 视图类: CEmbed_ExcelView in Embed_ExcelView.h and Embed_ExcelView.cpp 容器类: CEmbed_ExcelCntrItem in CntrItem.h and CntrItem.cpp 3.在VIEW 菜单中,选ClassWizard,选Automation 选项卡,选Add Class,选择From a TypeLibrary, 选中Microsoft Excel 97/2000 类型库:Excel8.olb 或Excel9.olb(在Microsoft Office\Office 目录下) 会将类型库中的所有类添加到你的工程中。 4.在CntrItem.h 中为CEmbed_ExcelCntrItem 类添加如下函数定义: LPDISPATCH GetIDispatch(); 5.然后在CntrItem.cpp 中添加GetIDispatch 方法 示例代码 ----------- /******************************************************************* * This method returns the IDispatch* for the application linked to * this container. ********************************************************************/ LPDISPATCH CEmbed_ExcelCntrItem::GetIDispatch() { //The this and m_lpObject pointers must be valid for this function //to work correctly. The m_lpObject is the IUnknown pointer to // this object. ASSERT_VALID(this); ASSERT(m_lpObject != NULL); LPUNKNOWN lpUnk = m_lpObject; //The embedded application must be running in order for the rest //of the function to work. Run(); //QI for the IOleLink interface of m_lpObject. LPOLELINK lpOleLink = NULL; if (m_lpObject->QueryInterface(IID_IOleLink, (LPVOID FAR*)&lpOleLink) == NO...