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.

相关推荐
SimLine芯见14 小时前
专为空管环境打造的KVM切换器,满足主备自动化高速无缝切换需求
运维·自动化
恶猫14 小时前
网页自动化模拟操作时,模拟真实按键触发事件【终级方案】
前端·javascript·自动化·vue·网页模拟
Agent产品评测局14 小时前
离散制造业生产流程优化,AI落地实操步骤详解:从传统自动化到企业级智能体的技术范式跃迁
运维·人工智能·ai·自动化
鼎道开发者联盟15 小时前
鼎享会 | 从手工到自动化:OpenClaw改造GitLab内部协作流程的全过程
自动化·gitlab·openclaw
marsh020616 小时前
39 openclaw持续集成实践:自动化构建与部署流程
运维·ci/cd·ai·自动化·编程·技术
志栋智能17 小时前
跨越人机边界:超自动化巡检如何重塑工作流程?
运维·网络·人工智能·安全·自动化
chaofan98017 小时前
突破大模型落地瓶颈:Claude 4.7 与 GPT-5.5 长上下文工程实测
数据库·人工智能·python·gpt·自动化·php·api
qq_4523962317 小时前
第十四篇:《持续集成中的UI自动化:Jenkins/GitHub Actions集成》
ui·ci/cd·自动化
ai大模型中转api测评17 小时前
构建生产级 AI 应用:GPT-5.5 与 Claude 4.7 的 Token 成本管理与工程化实战
大数据·人工智能·gpt·自动化
测试那点事儿18 小时前
零基础接口自动化到 Jenkins 持续集成(导读)
ci/cd·自动化·jenkins