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.

相关推荐
北京耐用通信15 小时前
工业自动化领域耐中达讯自动化CC-Link IE转EtherCAT技术解决方案
人工智能·物联网·网络协议·自动化·信息与通信
星马梦缘16 小时前
运动控制系统(三)-转速闭环直流调速系统
自动化·电机·自动控制·闭环系统
wzl2026121316 小时前
企微私域工具免费版vs付费版:数据统计API差异与自动化报表脚本实现
大数据·自动化·企业微信
taxunjishu17 小时前
智能仓储无人化管控 Profinet转MODBUS TCP全流程互联
网络·网络协议·自动化
Agent产品评测局17 小时前
企业预算管理自动化落地,编制管控全流程实现方案 —— 2026企业级智能体选型与架构深度解析
运维·人工智能·ai·架构·自动化
北京耐用通信18 小时前
1个网关=100+设备兼容:耐达讯自动化CC-Link IE 转 EtherCAT重新定义工业协议转换价值
人工智能·科技·网络协议·自动化·信息与通信
AscendKing19 小时前
一款开源、本地部署的 SSL 证书自动化管理工具Certimate介绍 部署教程
开源·自动化·ssl
何中应19 小时前
Alertmanager设置邮件通知
运维·自动化·prometheus
星马梦缘19 小时前
运动控制系统(四)-转速闭环系统的反馈控制规律
自动化·pid·自动控制·传递函数·比例控制·劳斯-赫尔维茨稳定性判据
水云桐程序员21 小时前
电子自动化技术(EDA技术)FPGA概述
运维·fpga开发·自动化