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

news2024/11/24 12:54:04

我们在开发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.coloradmin.cn/o/1258358.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

内网穿透的应用-Jupyter Notbook+cpolar内网穿透实现公共互联网访问使用数据分析工作

文章目录 1.前言2.Jupyter Notebook的安装2.1 Jupyter Notebook下载安装2.2 Jupyter Notebook的配置2.3 Cpolar下载安装 3.Cpolar端口设置3.1 Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 在数据分析工作中,使用最多的无疑就是各种函数、图表、…

spirng+maven实现的宠物管理系统

spirngmaven实现的宠物管理系统,演示地址:登录页面 共分为3中角色 管理员 账号:admin 密码:123456 医生: 账号:医生1 密码:123456 普通用户: 账号:1 密码:123456 数据库为mysql5.7…

人工智能入门,什么是AlphaGo式搜索?

AlphaGo式搜索是一种搜索算法,它是由DeepMind开发的AlphaGo团队在开发AlphaGo程序时使用的搜索策略。 AlphaGo是一个基于人工智能的围棋程序,它在2016年击败了世界冠军柯洁,引起了广泛的关注。 AlphaGo式搜索的核心思想是使用蒙特卡洛树搜索…

全文检索[ES系列] - 第495篇

历史文章(文章累计490) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 M…

软件测试工程师一定要会的用例设计思路

职场新人对测试用例的困惑无非有以下几点 1、什么是测试用例,为什么要写测试用例? 2、不知道怎么写,写了也不知道写的是否完整。 同时,在这我也准备了一份软件测试视频教程(含接口、自动化、性能等)&…

伦敦金现图形态分析(深度好文)

对价格行为交易者来说,伦敦金价走势图表中的一些特殊形态,能够带来比较靠谱的交易信号。然而交易并不只和形态有关,也和我们能够从图表形态中阅读到什么,以及如何理解其他交易者对价格波动的推动有关。 在对伦敦金走势图的技术形态…

Postman接口测试 —— 调用接口!

一、获取接口信息 通过接口文档/fiddler,Charles,F12等抓包获取接口信息 二、分析接口信息 (1)请求方式:get/post (2)参数方式:有哪些参数/参数类型/必填项 (3)是否带请求头:带…

学嵌入式,已经会用stm32做各种小东西了,下一步是什么

学嵌入式,已经会用stm32做各种小东西了,下一步是什么,研究stm32的内部吗? 针对题主这种类型的,首先我想提出几个技术问题。 1,除了那几个常用的外设,stm32上集成的众多外设是否都有实际的使用经…

SpringCloudAlibaba微服务 【实用篇】| Nacos注册中心

目录 一:Nacos注册中心 1. 认识和安装Nacos 2. Nacos快速入门 3. Nacos服务分级存储模型 ①Nacos服务分级存储模型 ②NacosRule负载均衡 ③根据权重负载均衡 4. Nacos环境隔离 二:Nacos和Eureka的对比 tips:前些天突然发现了一个巨…

为了深入理解优秀的RPC框架Dubbo,从基于Netty手写一个RPC框架开始

什么是RPC 在分布式服务框架中,在java领域中有很多实现远程通讯的技术,例如RMI、Hessian、SOAP、ESB 和JMS。 要实现网路机器间的通讯,首先需要看看计算机网络通信的基本原来,在底层层面看,网络通信需要做得就是将流…

【OpenCV】图像上绘制文字cv2.putText()函数用法,添加倾斜透明水印

图像上绘制文字 1. 概述2. cv2.putText()函数参数3. 图像上绘制非中文文字4. 图像上绘制中文文字5. 图片上添加倾斜透明文字水印 1. 概述 在OpenCV中,调用cv2.putText()函数可添加文字到指定位置,对于需要在图片中加入文字的场景提供了一种比较直接方便的…

表单项样式1(输入框,选择框)

样式均写在全局文件下(src/assets/style/home.scss) 1、选择框 效果: 选择时: 代码: //选择框 .el-select{.el-input__inner{border-radius: 0px;font-size: 14px;color: #CBEEFF;background: rgba(23,111,172,0.12…

当「华为还是备选,迪爹还是迪子」时宇宙厂一面原题

写在前面 2021 年还是互联网元年,当时常规的华为 Offer 还是普遍人的备选,如今的迪爹(BYD)也还是 "来投就给 Offer" 的迪子。 只有字节,当时是公认炙手可热的"宇宙厂"。 作为在 2021 就提前体验了…

TikTok小店运营秘籍:打造有温度的社交电商

引言 TikTok作为全球短视频平台的领军者,日渐成为创业者和小商家的新天地。通过TikTok小店,创业者们可以将独特的产品呈现给全球观众。 然而,要在这个竞争激烈的市场中脱颖而出,不仅需要敏锐的商业嗅觉,还需要打造一个…

网易云音乐7天黑胶VIP会员免费领取入口怎么领取网易云音乐黑胶VIP7天会员?

网易云音乐7天黑胶VIP会员免费领取入口怎么领取网易云音乐黑胶VIP7天会员? 1、百度搜索「词令」,在搜索框内输入词令「vip163」关键词直达口令,进入网易云音乐7天黑胶VIP会员免费领取入口; 2、输入网易云音乐黑胶VIP7天会员领取词…

Intellij Idea 调试界面断点“下一步” 按钮不见了怎么办

问题图示例: 原因 Debug 工具栏( Toolbar )被隐藏了 解决方案 操作步骤 点击Debug面板设置图标->再点击 Show Toobar 点击后效果 工具栏再现,又可以愉快的下一步了 Debug 图标设置按钮一般位于Debug面板的右上角

智能物流时代:快递物流信息订阅与推送API自动推送物流变更信息

引言 在当今数字化和智能化的时代,物流行业也在迅速演变,通过技术创新提高效率、提升服务质量。其中,快递物流信息订阅与推送API的自动推送功能成为推动物流领域发展的重要驱动力。本文将深入探讨这一趋势,并分析快递物流信息订阅…

为什么制定交易策略要根据资金量,澳福一个例子说清楚

为什么制定交易策略要根据资金量。其实很简单,澳福一个例子说清楚。 假如投资者现在有一大笔资金,就可以用这笔资金的1个百分点的利息来支付自己的日常开支,一百万的1%利息就足够了,可以支付你想要的一切。澳福和各位投资者是不是…

如何使用Java支付宝沙箱环境并公网调用sdk创建支付单服

Java支付宝沙箱环境支付,SDK接口远程调试【内网穿透】 1.测试环境 MavenSpring bootJdk 1.8 2.本地配置 获取支付宝支付Java SDK,maven项目可以选择maven版本,普通java项目可以在GitHub下载,这里以maven为例 SDK下载地址:https://doc.open.alipay.com…

python之yaml技术(可用于写接口自动化的测试用例文件)

一.yaml介绍 yaml文件是一种配置文件类型,相比较ini,conf配置文件来说,更加的简洁,操作也更加简单,同时可以存放不同类型的数据。 yaml使用场景 配置文件 测试用例 二.yaml语法 大小写敏感 使用缩进表示层级关系…