本文介绍: 由于本文只关心对Excel表格中的数据读取,主要关注7个接口类_Application、Workbooks、_Workbook、Worksheets、_Worksheet、Range、Font0。Excel作为OLE/COM库插件定义好了各类交互接口,这些接口是跨语言的接口。5、分别在“可用接口”一栏,将_Application、Workbooks、_Workbook、Worksheets、_Worksheet、Range、Font0类选择到“实现接口”一栏。1、右键项目添加选择新建项”

我们开发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:UsersExcelDemoExcelDemoCRange.h(335,10): warning C4003: 类函数宏的调用“DialogBoxW”参数不足
1>(编译源文件“/ExcelDemoDlg.cpp)
1>C:UsersExcelDemoExcelDemoCRange.h(335,10): error C2059: 语法错误:“,”

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

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

在这里插入图片描述

原文地址:https://blog.csdn.net/y601500359/article/details/134644899

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_12393.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注