当前位置: 首页 > news >正文

MFC中Excel的导入以及使用步骤

参考地址
右击项目出现“类向导”界面
添加类中选择“类型库中的MFC类”点击类向导,找到可用的类型库为Excel的库

在接口中选择对应类添加到右侧生成的类中后点击完成
添加完成后项目中出现以上头文件
在需要对EXCEL表进行操作的类中添加以下头文件:若出现大量错误将其放入stdafx.h中

#include "resource.h"       // 主符号
#include "CWorkbook.h"		//单个工作簿
#include "CRange.h"			//区域类,对Excel大部分操作都需要
#include "CWorkbooks.h"		//管理所有工作簿
#include "CApplication.h"	//Excel应用程序类,管理整个Excel应用

在类中添加以下变量定义:

	//定义Excel中需要的工作簿以及工作表等CApplication m_App;CWorkbooks	m_Books;CWorkbook	m_Book;CWorksheets m_Sheets;CWorksheet	m_Sheet;CRange		m_Range;

然后就可以封装对应函数,以下为打开Excel表的例子,一般包括Excel的读写:

//打开Excel表
int	CExcel_TestApp::OpenExcel(CString FileName)
{HRESULT Hr;//HRESULT函数返回值Hr = CoInitialize(NULL);//CoInitialize告诉Windows以单线程方式创建com对象if (FAILED(Hr)){AfxMessageBox(_T("调用函数失败!"));}LPDISPATCH LpDisp;COleVariant CovOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);if (!m_App.CreateDispatch(_T("Excel.Application"), NULL)){AfxMessageBox(_T("无法启动EXCEL服务器!"));return 0;}m_Books.AttachDispatch(m_App.get_Workbooks);//得到工作簿LpDisp = m_Books.Open(FileName, CovOptional, CovOptional, CovOptional, CovOptional,CovOptional, CovOptional, CovOptional, CovOptional, CovOptional,CovOptional, CovOptional, CovOptional, CovOptional);m_Book.AttachDispatch(LpDisp);//得到单个工作簿m_Sheets.AttachDispatch(m_Book.get_Worksheets);//得到工作簿对应的工作表LpDisp = m_Book.get_ActiveSheet();//得到当前活跃的工作表m_Sheet.AttachDispatch(LpDisp);//获取到表return 1;}

若运行出错,将导入的所有包含#import “C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” no_namespace头文件中的注释,将CRange.h中的DialogBox改为_DialogBox;

int	MFC_OpenExcel::OpenExcel(CString FileName)
{HRESULT Hr;//HRESULT函数返回值Hr = CoInitialize(NULL);//CoInitialize告诉Windows以单线程方式创建com对象if (FAILED(Hr)){AfxMessageBox(_T("调用函数失败!"));}LPDISPATCH LpDisp;COleVariant CovOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);if (!m_App.CreateDispatch(_T("Excel.Application"), NULL)){AfxMessageBox(_T("无法启动EXCEL服务器!"));return 0;}m_Books=m_App.get_Workbooks();//得到工作簿LpDisp = m_Books.Open(FileName, CovOptional, CovOptional, CovOptional, CovOptional,CovOptional, CovOptional, CovOptional, CovOptional, CovOptional,CovOptional, CovOptional, CovOptional, CovOptional, CovOptional);m_Book.AttachDispatch(LpDisp);//得到单个工作簿m_Sheets=m_Book.get_Worksheets();//得到工作簿对应的工作表LpDisp = m_Book.get_ActiveSheet();//得到当前活跃的工作表m_Sheet.AttachDispatch(LpDisp);//获取到表return 1;}
http://www.lryc.cn/news/481611.html

相关文章:

  • AWS S3在客户端应用不能使用aws-sdk场景下的文件上传与下载
  • 深入解析 Transformers 框架(四):Qwen2.5/GPT 分词流程与 BPE 分词算法技术细节详解
  • 【Python-AI篇】K近邻算法(KNN)
  • aws xray如何实现应用log和trace的关联关系
  • centos服务器登录失败次数设定
  • 实时高效,全面测评快递100API的物流查询功能
  • 第14张 GROUP BY 分组
  • 笔记整理—linux驱动开发部分(10)input子系统与相关框架
  • [算法初阶]埃氏筛法与欧拉筛
  • 【THM】linux取证 DisGruntled
  • SpringBoot整合Freemarker(四)
  • centos docker 安装 rabbitmq
  • 手动实现promise的all,race,finally方法
  • H5移动端预览PDF方法
  • uniapp—android原生插件开发(1环境准备)
  • 《潜行者2切尔诺贝利之心》游戏引擎介绍
  • winform 加载 office excel 插入QRCode图片如何设定位置
  • 简易入手《SOM神经网络》的本质与原理
  • 21.assert断言
  • 15分钟学 Go 第 46 天 : 监控与日志
  • BFS 算法专题(四):多源 BFS
  • 基于Spring Boot+Vue的养老院管理系统【原创】
  • Linux screen和cscope工具使用总结
  • 深度学习面试八股汇总
  • 微服务架构面试内容整理-API 网关-Gateway
  • 22.04Ubuntu---ROS2使用rclcpp编写节点C++
  • XML 现实案例:深入解析与应用
  • Spring源码(十二):Spring MVC之Spring Boot
  • Kafka 之事务消息
  • 小菜家教平台(四):基于SpringBoot+Vue打造一站式学习管理系统