【MFC】利用VS2019在MFC中处理excel文件

本文档介绍了如何在MFC应用程序中使用VS2019读写Excel文件。首先,需要包含相关头文件并获取Excel驱动。接着,详细阐述了打开并读取Excel内容的过程,强调了不同驱动对应不同文件格式的重要性。同时,也讲解了如何保存数据到Excel文件。最后,展示了操作的效果,并指出读取时需设定表格名称。
摘要由CSDN通过智能技术生成

<学习笔记>利用VS2019在MFC中读写excel文件

包含头文件

#include<afxdb.h>  //用于建立数据库对象,包括CDatabase类
#include <odbcinst.h>
#pragma comment(lib,"odbc32.lib")
#pragma comment(lib,"odbccp32.lib")
#pragma comment(lib,"legacy_stdio_definitions.lib")

获取excel驱动

通过查询的方式使用excel驱动,具体函数如下,函数填入具体使用的驱动名,每台设备可能会有不一样的驱动库,如果想知道自己的驱动都有什么可以在查询循环中加入MessageBox(str)来查看,在本例中主要会用到“Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, .xlsb)”;和“Microsoft Excel Driver (.xls)”。

CString CMyDialog::GetExcelDriver(char* Drivername)//读取EXCEL文件//检索是否安装有Excel驱动
{
   
	CString sDriver;
	TCHAR szDrivers[4096];
	memset(szDrivers, 0, sizeof(szDrivers));
	WORD wRet = 0;
	// 获取已安装驱动的名称(函数在odbcinst.h里)
	if (SQLGetInstalledDrivers(szDrivers, _countof(szDrivers), &wRet))
	{
   
		LPTSTR pszDrv = szDrivers;
		// 检索已安装的驱动是否有Excel
		while (*pszDrv)
		{
   
			CString str = CString(pszDrv);
			CStringA StrA = static_cast<CStringA>(str);
			char* str2 = StrA.GetBuffer();
			//AfxMessageBox(str);//测试
			if (strstr(str2, Drivername) != 0) {
   

				sDriver = CString(str2);
				return sDriver;
			}
			pszDrv += _tcslen(pszDrv) + 1;
		}
	}
	return _T("");
}

打开excel文件并读取内容

获取excel驱动后,打开打开文件窗口,CDatabase类和CRecordSet类配合使用将excel文件信息在ListControl控件(view=report,变量mList1)上显示。

void CMyDialog::OnBnClickedButton1()
{
   
	// 打开文件
	CString sDriver = GetExcelDriver(
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值