VS2017 MFC操作Excel

本文介绍了如何在VS2017环境下使用MFC操作Excel。首先安装Office 2021 ProPlus,然后通过VS2017的【添加类】功能选择MFC类。注意,高于VS2017的版本可能需要手动添加库。接着注释头文件避免错误,并封装Excel操作。最后,展示了加载和读取Excel表的接口函数。
摘要由CSDN通过智能技术生成

1.首先安装OFFICE软件[Office 2021 ProPlus],此版本为OFFICE16

2.进入VS2017或以下的开发环境,使用快捷键调出CTRL+SHIFT+A调出【添加类】

要VS2017以上的版本,无法添加此库,得手动添加比较麻烦,建议用2017加载完后再用VS2017以上的开发环境。

选中Visual C++=》MFC=》Typelib中的MFC类

OFFICE的Excel地址为:C:\Program Files\Microsoft Office\root\Office16,其他OFFICE版本大同小异

3.注释头文件避免错误

把刚才导入的头文件的import操作全部注释掉避免出现错误

头文件为:

CApplication
CWorkbook
CWorksheet
CRange
CWorksheets
CWorkbooks
//#import "C:\\Program Files (x86)\\Microsoft Office\\Office12\\EXCEL.EXE" no_namespace

进入CRange.h中把第335行代码

VARIANT DialogBox()  
//改为VARIANT _DialogBox()

4.封装Excel操作

添加Excel.h输入:

#pragma once
#include "CApplication.h"
#include "CRange.h"
#include "CWorkbook.h"
#include "CWorkbooks.h"
#include "CWorksheet.h"
#include "CWorksheets.h"
#include "stdafx.h"

class Excel
{
public:
	Excel();
	~Excel();
	void show(bool bShow);
	//检查一个cell是否为字符串
	bool isCellString(long iRow, long iColumn);
	//检查一个cell是否为数值
	bool isCellInt(long iRow, long iColumn);
	//得到一个cell的string
	CString getCellString(long iRow, long iColumn);
	//得到一个cell的总数
	int getCellInt(long iRow, long iColumn);
	//得到一个cell的double数据
	double getCellDouble(long iRow, long iColumn);
	//取得行的总数
	int getRowCount();
	//取得列的总数
	int getColumnCount();
	//使用某个shell
	bool loadSheet(long tableId, bool preLoaded = false);
	bool loadSheet(CString sheet, bool preLoaded = false);
	//通过序号取得某个sheet的名称
	CString getSheetName(long tableID);
	//得到sheet的总数
	int getSheetCount();
	//打开excel文件
	bool open(const char* fileName);
	//关闭打开的excel文件
	void close(bool ifSave = false);
	//另存为一个excel文件
	void saveAsXLSFile(const CString &xlsFile);
	//取得打开文件的名称
	CString getOpenFileName();
	//取得打开sheel的名称
	CString getOpenSheelName();
	//向cell中写入一个int值
	void setCellInt(long iRow, long iColumn, int newInt);
	//向cell中
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值