如何使用vs2022通过excel.exe生成VC、C++能够使用的头文件

我们在开发MFC、VC、C++项目时,有时候需要操作excel文件的读写,我们一般常用方式是调用微软的excel驱动方式调用,但调用驱动前,我们需要生成我们C++能够调用到的头文件,一般常用文件有:

#include "CApplication.h"
#include "CWorkbook.h"
#include "CWorkbooks.h"
#include "CWorksheet.h"
#include "CWorksheets.h"
#include "CRange.h"
#include "CFont0.h"

Excel作为OLE/COM库插件,定义好了各类交互的接口,这些接口是跨语言的接口。VC可以通过导入这些接口,通过接口来对Excel的操作,导入OLE/COM库插件方式根据vs不同版本参考如下:
如何在vs2017及以前版本(vs2010、vs2015)上添加 添加类型库中的MFC类
如何在vs2019及以后版本(如vs2022)上添加 添加ActiveX控件中的MFC类)
由于本文只关心对Excel表格中的数据的读取,主要关注7个接口类_Application、Workbooks、_Workbook、Worksheets、_Worksheet、Range、Font0。
那我们如何导入Excel插件呢,我们使用vs2022来举例。

1、右键项目—添加—选择“新建项”
在这里插入图片描述
2、选择Visual C++—MFC—TypeLib中的MFC类—添加
在这里插入图片描述
3、在实现接口的位置的下拉列表中,选择“文件”
在这里插入图片描述
4、选择excel.exe所在路径
注:我是提前通过everything工具搜索到文件后,直接拷贝到项目根目录。
在这里插入图片描述
5、分别在“可用接口”一栏,将_Application、Workbooks、_Workbook、Worksheets、_Worksheet、Range、Font0类选择到“实现接口”一栏。
在这里插入图片描述
6、点击确定按钮后,即可生成我们需要的类。
在这里插入图片描述
7、在头文件生成后,需要把这几个头文件里的导入代码屏蔽,因为后续不需要再重新导入。
在这里插入图片描述
8、由于CFont类和C++默认CFont类重定义,所以直接修改CFont类为CFont0,并修改文件名为CFont.h
在这里插入图片描述
9、由于CRange.h中DialogBox函数编译报错
如果有错误error C2059双击error C2059,将VARIANT DialogBox()改成VARIANT _DialogBox()。

1>C:\Users\ExcelDemo\ExcelDemo\CRange.h(335,10): warning C4003: 类函数宏的调用“DialogBoxW”参数不足
1>(编译源文件“/ExcelDemoDlg.cpp”)
1>C:\Users\ExcelDemo\ExcelDemo\CRange.h(335,10): error C2059: 语法错误:“,”

在这里插入图片描述
再次编译,通过。

生成开始于 15:35...
1>------ 已启动生成: 项目: ExcelDemo, 配置: Debug x64 ------
1>ExcelDemoDlg.cpp
1>ExcelDemo.vcxproj -> C:\Users\yangguangjin\Documents\work\TestDemo\ExcelDemo\x64\Debug\ExcelDemo.exe
========== 生成: 1 成功,0 失败,0 最新,0 已跳过 ==========
========== 生成 于 15:35 完成,耗时 02.565 秒 ==========

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/234281.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FastDFS文件系统本地部署结合Nginx与内网穿透实现远程访问本地服务器

文章目录 前言1. 本地搭建FastDFS文件系统1.1 环境安装1.2 安装libfastcommon1.3 安装FastDFS1.4 配置Tracker1.5 配置Storage1.6 测试上传下载1.7 与Nginx整合1.8 安装Nginx1.9 配置Nginx 2. 局域网测试访问FastDFS3. 安装cpolar内网穿透4. 配置公网访问地址5. 固定公网地址5.…

【算法每日一练]-图论(保姆级教程篇9 最小生成树 ,并查集篇)#道路修建 #兽径管理

目录 题目:道路修建 思路: 题目:兽径管理 思路: 题目:道路修建 思路: “让这些点全部连在一起的最小代价”很明显是最小生成树。绝对不能kruskal,存边一定会超内存。所以只能prim。 但是…

AI搜索相关性在网站和APP上的应用

设定场景:您在寻找一件新衣服,所以在浏览最喜欢的网店。您跳到搜索栏上,输入您要找的东西。您期待出现什么结果? 高度准确、相关和即时的结果。 无论在什么网站上搜索,寻找什么,甚至在打错字或使用了错误的…

VirtualBox上安装CentOS7

基础环境:宿主机是64位Windows10操作系统,通过无线网访问网络。 macOS可以以类似方式进行安装,不同之处见最后补充。 Step1 安装VirtualBox VirtualBox是一款免费、开源、高性能的虚拟机软件,可以跨平台运行,支持Wi…

Linux:进程状态

目录 1.Linux内核关于进程状态的源代码 2. 运行状态 3. 阻塞状态 4. 挂起 5.Linux中的进程状态 5.1 睡眠状态 5.2 暂停状态 5.3 僵尸进程与孤儿进程 我们在学习进程状态时,老师只是简单的让我们记住下面这张图 1.教材中进程操作系统的进程状态 那么这些…

Netfilter中的NAT

目录 前瞻 SNAT和DNAT SNAT DNAT 实验 前瞻 NAT: (network address translation),支持PREROUTING,INPUT,OUTPUT,POSTROUTING四个链 NAT分为SNAT和DNAT SNAT:支持POSTROUTING, INPUT&…

突发,合肥一废品回收站发生火灾,富维AI神器助力防灾

昨晚,合肥一废品回收站突发火灾,火光冲天,烟雾蔓延。幸亏及时发现,消防人员迅速到场,控制了火势。这起事件让我们再次认识到火灾报警的重要性。而在这方面,北京富维图像公司的FIS智能图像识别系统就发挥了巨…

Redis:主从复制

目录 概念配置步骤通过命令配置主从复制原理薪火相传反客为主哨兵(Sentinel)模式原理配置SpringBoot整合Sentinel模式 概念 主机更新后根据配置和策略,自动同步到备机的master/slave机制,Master以写为主,Slave以读为主。 作用: …

关于最近Facebook的未经用户同意收集使用个人信息,

最近收到深圳市通信管理局的违法违规APP处置通知大概如下: 并且详细列举了 facebook sdk 在未经用户允许前调用的 TelephonyManager.getNetworkOperatorName(); 方法,获取运营商名称. 解决方法, 首先 在用户没有点击允许隐私条款前 不要调用任何Facebook sdk 方法,比如: Fac…

跨境在线客服系统:打破国界的沟通壁垒

跨境在线客服系统在如今全球化的时代中扮演着重要的角色。随着电子商务的兴起,越来越多的企业将目光投向了国际市场。然而,跨境交流带来了语言、文化、时区等各种难题,给客服工作带来了巨大的挑战,而跨境在线客服系统成为了解决这…

渗透测试学习day4

文章目录 靶机:SequelTask1Task2Task3Task4Task5Task6Task7Task8 靶机:CrocodileTask1Task2Task3Task4Task5Task6Task7Task8Task9Task10 靶机:Sequel 考察sql注入 Task1 问题:在扫描过程中,我们发现哪个端口为 MySQL …

SpringSecurity的默认登录页的使用

SpringSecurity的默认登录页的使用 01 前期准备 引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--mysql驱动--><dependency><grou…