2601Mfc,自动化excel2

创建自动化项目

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

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

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

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

2,对话框:AutoProject.h和AutoProjectDlg.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.dll或Dao360.dll除外.Dao350.dlldll/Dao360.dll``默认位置为C:\ProgramFiles\CommonFiles\MicrosoftShared\Dao.

相关推荐
海宇大数据2 小时前
零信任架构实战:基于海宇身份证OCR构建自动化跨境清关核验网关
人工智能·架构·c#·自动化
新新学长搞科研4 小时前
【IEEE出版/论文高录用率】第七届机械自动化与智能制造国际学术会议(MAIM 2026)
自动化·制造
我叫洋洋4 小时前
涂鸦 T5+ hashcat 自动化破解 WPA2:从单缺 M2 到全自动值守的踩坑实录 破解wifi 密码
运维·单片机·自动化
天远API11 小时前
零信任架构实战:基于天远运营商三要素简版V即时版查询构建自动化司乘安全绑定网关
人工智能·安全·架构·自动化
代码方舟15 小时前
零信任架构实战:基于天远运营商三要素简版V即时版查询构建自动化电子投保实名核验网关
大数据·人工智能·架构·自动化
wtblszn20 小时前
空压机在线监测物联网方案
大数据·运维·物联网·自动化·能源
天远数科21 小时前
零信任架构实战:基于天远运营商三要素简版V即时版查询构建自动化买手实名核验网关
运维·人工智能·架构·自动化
weixin_404551241 天前
自动化数据库理解:用 AI 与 LLM 自动推断表的用途与关系
数据库·人工智能·自动化
智能RPA1 天前
金融行业智能体自动化平台对比评测报告(银行核心与监管报送场景)
人工智能·金融·自动化·agent·rpa
szxinmai主板定制专家1 天前
RK3568+FPGA+CODESYS异构控制方案:赋能半导体设备与工业自动化升级
人工智能·fpga开发·自动化·rk3576·半导体设备