2601Mfc,自动化excel2

创建自动化项目

使用IDE,启动叫"AutoProject"的新"MFC应用向导(exe)"项目.

MFC应用向导第一步中,选择"基于对话框"的应用类型,然后点击完成.

项目信息``对话框显示,提示创建的分类包括:

1,应用助手:AutoProject.hAutoProject.cpp中的CAutoProjectApp

2,对话框:AutoProject.hAutoProjectDlg.cpp中的CAutoProjectDlg

点击确定以创建项目.

1,在项目客户区中,点击"资源视图"标签.

2,双击"自动项目资源"以展开资源树.

3,在资源树中双击"对话",然后双击选择"资源"IDD_AUTOPROJECT_DIALOG"对话框.

4,移除标签控件(IDC_STATIC)和取消按钮(IDCANCEL).

5,把确定按钮名改为"IDRUN",并将说明文字改为"运行".关闭AutoProject.rc``对话框设计表单.

6,点击视图菜单中的类向导(或按CTRL+W).

7,选择"消息映射"标签.

8,在对象ID列表框中选择IDRUN,在消息列表框中选择"BN_CLICKED".点击添加函数,接受函数名``"OnRun".点击确定关闭类向导.

注意:这一步会在叫AutoProjectDLG.h头文件中添加"OnRun();"成员函数的声明.这一步还会在叫AutoProjectDLG.cpp的文件中添加叫CAutoProjectDlg::OnRun()的空框架处理消息函数.

9,点击视图菜单中的类向导(或按CTRL+W).

10,选择自动化标签.点击添加类,然后选择"从类型库中".浏览选择你想自动化应用的对象库(这里,选择Excel8.0``对象库;

11,默认位置C:\ProgramFiles\办公\Office\Excel8.olb),然后点击打开.在确认类列表选择所有类并点击确定.

注意:确认类对话框中的列表框包含了优秀类型库中所有IDispatch接口(毕竟它们是类).

对话框的下半部分,你看叫Excel8.cpp实现文件包含从ColeDispatchDriver()继承的类封装器,相应的声明头文件Excel8.h.

12,点击确定关闭MFC类向导``对话框.

在加载并允许COM服务库的CAutoProjectApp::InitInstance()函数中添加以下代码:

cpp 复制代码
  BOOL CAutoProjectApp::InitInstance()
  {
     if(!AfxOleInit())
//你的新增内容在此
     {
        AfxMessageBox("Could not initialize COM dll");
        return FALSE;
     }
//你的扩建结束
     AfxEnableControlContainer();
  }

AutoProject.cpp助手文件顶部的#include语句中添加以下一行:

cpp 复制代码
  #include <afxdisp.h>

AutoProjectDlg.cpp助手文件顶部的包含语句后,添加excel8.h包含语句:

cpp 复制代码
  #include "stdafx.h"
  #include "excel8.h"

CAutoProjectDlg::OnRun()中添加自动化代码,使其渲染如下:

cpp 复制代码
  void CAutoProjectDlg::OnRun()
  {
      _Application app;
//`应用`是`Excel8`的`_Application`对象
//启动`Excel`并取`应用`对象...
     if(!app.CreateDispatch("Excel.Application"))
     {
        AfxMessageBox("Couldn't start Excel.");
     }
     else
     {
//让`Excel`可见并显示一条消息
      app.SetVisible(TRUE);
      AfxMessageBox ("Excel is Running!");
     }
  }

构建并运行项目.

结果:当你在对话框中点击"运行"按钮时,启动优秀.激活Auto_Excel``对话框关闭该消息框.当CAutoProjectDlg::OnRun()函数结束时,优秀会停止,因为应用已出域.

附加注释

一旦在项目中添加了类型库中的类(如上第9步所示),注意已在项目中添加了许多类.

类视中,你可双击一个类查看该类的成员函数,然后双击该成员函数查看Excel8.cpp``实现文件中的该函数定义.

如果你想验证返回类型或要更改函数的实现,需要进入成员函数的定义.

每次更改函数定义时,记得更改Excel8.h文件中的声明.

操作时,确保更改正确函数声明;有时,多个类的成员函数会有相同名,GetApplication()就是一例.

虽然上述步骤展示了如何自动化优秀,但你也可将同样的理念应来自动化其他应用助手.如下包含了办公97应用助手类型库的文件名:

应用 类型库
Access97 Msacc8.olb
JetDatabase3.5 DAO350.dll
Binder97 Msbdr8.olb
Excel97 Excel8.olb
Graph97 Graph8.olb
Office97 Mso97.dll
Outlook97 Msoutl97.olb
PowerPoint97 Msppt8.olb
Word97 Msword8.olb
Access2000 Msacc9.olb
JetDatabase3.51 DAO360.dll
Binder2000 Msbdr9.olb
Excel2000 Excel9.olb
Graph2000 Graph9.olb
Office2000 Mso9.dll
Outlook2000 Msoutl9.olb
PowerPoint2000 Msppt9.olb
Word2000 Msword9.olb

注意:这类库的默认位置C:\ProgramFiles\办公\Office,Dao350.dllDao360.dll除外.Dao350.dlldll/Dao360.dll``默认位置C:\ProgramFiles\CommonFiles\MicrosoftShared\Dao.

相关推荐
belldeep13 小时前
python:如何将豆包AI中历史对话 备份到本地 backup目录下?
人工智能·python·ai·自动化·backup·豆包
软希网分享源码14 小时前
AIGC自动化编程实战(Python、Java、JavaScript和VBA) -2.9G课程
python·自动化·aigc
qq_4542450315 小时前
开源GraphMindStudio工作流引擎:自动化与AI智能体的理想核心
运维·人工智能·开源·c#·自动化
deepdata_cn1 天前
标签质量自动化评估
自动化·标签质量
教男朋友学大模型1 天前
平衡AI自动化与人工干预
大数据·人工智能·自动化
兵哥工控2 天前
mfc 线程启动、挂起、恢复、停止实例
c++·mfc·线程
田里的水稻2 天前
PPB_自动化及其相近期刊
运维·自动化
爱看书的小沐2 天前
【小沐学CAD】基于OCCT读取和显示STEP模型文件(QT、MFC、glfw)
qt·mfc·opengl·stp·step·opencascade·occt
喵手3 天前
Python爬虫实战:自动化构建 arXiv 本地知识库 - 从 PDF 下载到元数据索引!
爬虫·python·自动化·arxiv·本地知识库·pdf下载·元数据索引
骆驼爱记录3 天前
WPS文档标题一键加形状
自动化·word·excel·wps·新人首发