《MFC如何添加EXCEL库和操作EXCEL》

EXCEL工作簿、工作表、单元格、行、列

我们在使用EXCEL时,需要搞清楚EXCEL应用程序、工作簿、工作表以及单元格的关系,还有如何设置字体和背景以及边框的属性。总之,就是1个工作簿(workbook)中含有很多个工作表(worksheet),工作表(worksheet)由行(cols)和列(rows)组成,行和列又由很多个单元格(cell)组成。由于在项目中使用到了EXCEL进行数据统计,这里就把如何在MFC上添加EXCEL库和操作EXCEL的经验总结一下,EXCEL版本的不断升级换代,相对应的EXCEL库函数名也会更改,有的可能是大小写的改变,有的把前缀由set改为了put,这点要注意。

_Application:表示整个的Excel应用程序,包含一个工作簿集合。

Workbooks:工作簿集合,包含N个工作簿(Workbook)。

_Workbook:工作簿,包含一个工作表(sheets)集合。

Worksheets:工作表集合,包含N个工作表。

_Worksheet:工作表。

Range:这是单元格的集合。

Font:用于设置单元格的字体、颜色、字号、粗体设置。

Interior:设置底色。

Boards:设置区域内所有单元格的边框。

 

MFC中添加EXCEL库

操作系统:windows10

开发工具:VS2010

office版本:office2016

1、新建一个MFC项目,选中项目名称,右键选择类向导,进入MFC类向导界面,点击右边小三角符号,选择MFC类库中的MFC类(T)...,如下图所示:

2、进入从类型库添加类向导界面,开始导入EXCEL类型库EXCEL.EXE的路径有可能不一样,需要自己去查找,这里仅供参考,我使用的是office16,具体步骤如下图所示:

3、添加完成之后,点击应用确认按钮。 

温馨提示:添加完之后,运行代码可能会出现很多问题

 

添加EXCEL库后运行代码可能存在以下问题

问题一

解决方法:注释掉每个头文件里的这一句代码

#import "C:\\Program Files (x86)\\Microsoft Office\\root\\Office16\\EXCEL.EXE" no_namespace

问题二

 error C2059: 语法错误:“,”

解决方法:双击报错选项,进入报错代码段,报错代码在头文件CRange.h里面,原因可能是函数重名,将DialogBox前面添加下划线_DialogBox即可解决问题,修改后如下所示:

VARIANT _DialogBox()
{
	VARIANT result;
	InvokeHelper(0xf5, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL);
	return result;
}

温馨提示:以上只包括MFC添加EXCEL库常见的问题,如果遇到除此之外的问题,请自行百度寻找解决方案。 

 

MFC操作EXCEL进行数据统计

 

 

  • 3
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: VS2019 MFC操作Excel是一种常用的开发技术,可以通过使用MFC中的一些功能和类来实现对Excel文件的读写操作。 首先,需要在工程中引入MFC和所需的头文件,如afxwin.h、afxdisp.h等。 接下来,使用COleVariant类型的变量来打开Excel应用程序,并创建一个工作簿(Workbook)对象。例如: ```cpp CApplication excelApp; if (!excelApp.CreateDispatch(_T("Excel.Application"))) { AfxMessageBox(_T("Excel应用程序创建失败!")); return; } CWorkbooks workbooks = excelApp.GetWorkbooks(); CWorkbook workbook = workbooks.Add(); ``` 然后,通过获取工作簿中的工作表(Worksheets)对象,可以进行对工作簿的操作。例如: ```cpp CWorksheets worksheets = workbook.GetWorksheets(); CWorksheet worksheet = worksheets.GetItem(COleVariant((short)1)); //获取第一个工作表 Range range; //定义一个区域对象 range.AttachDispatch(worksheet.GetRange(COleVariant(L"A1"), COleVariant(L"C3"))); //获取A1到C3的单元格区域 COleVariant data(_T("Hello, Excel!")); //准备要写入的数据 range.put_Value2(data); //将数据写入区域 ``` 当需要读取Excel数据时,可以借助Worksheet对象的Cells属性和Range对象进行操作。例如: ```cpp CRange usedRange = worksheet.GetUsedRange(); //获取已使用的单元格范围 int rowCount = usedRange.GetRows().GetCount(); //获取行数 int columnCount = usedRange.GetColumns().GetCount(); //获取列数 for (int i = 1; i <= rowCount; i++) { for (int j = 1; j <= columnCount; j++) { CRange cell = worksheet.GetCells().GetItem(COleVariant(i), COleVariant(j)); //获取指定单元格 CString value = cell.GetValue(); //获取单元格的值 //对获取到的数据进行处理 } } ``` 最后,记得在不需要使用Excel时,调用相关的关闭和释放函数,以结束Excel应用程序的运行。例如: ```cpp workbook.SaveAs(COleVariant(L"test.xlsx")); //保存工作簿到文件 workbook.Close(); excelApp.Quit(); ``` 以上是使用VS2019 MFC操作Excel的基本方法,通过这些方法可以方便地对Excel文件进行读写操作,实现各种需求。 ### 回答2: VS2019 MFC操作Excel的基本步骤如下: 首先,我们需要在项目中引入MFC。在新建项目时,选择MFC应用程序,并在创建向导中勾选"使用MFC功能"。 接下来,我们需要添加Excel的头文件和文件。在项目的stdafx.h文件中添加以下代码: ``` #include "afxdb.h" #include "afxdao.h" ``` 然后,在需要操作Excel的代码文件中,包含afxdao.h头文件,并定义以下变量: ``` CDatabase db; CDaoWorkspace workspace; CDaoDatabase* pDaoDB; CDaoRecordset rs; ``` 接着,我们需要创建一个Excel数据源。通过以下代码连接数据: ``` CString strExcelFile = _T("C:\\path\\to\\excel.xls"); // 替换为实际的Excel文件路径 CString strConnect = _T("Excel 8.0;HDR=YES;IMEX=1;"); // 数据源连接字符串 db.Open(NULL, FALSE, FALSE, strConnect); pDaoDB = db.m_pDaoDatabase; ``` 通过以上代码,我们成功地连接了Excel文件,现在可以开始操作Excel表格了。 例如,我们可以执行下列操作来读取Excel文件中的数据: ``` rs.Open(db.OpenRecordset(_T("SELECT * FROM Sheet1")));//替换Sheet1为实际的工作表名称 while (!rs.IsEOF()) { CString strName; rs.GetFieldValue(_T("Name"), strName); // 读取Name列的数据 // 在这里处理读取到的数据 rs.MoveNext(); } rs.Close(); ``` 类似地,我们可以编写代码实现写入数据、修改数据等其他操作操作完成后,务必关闭数据连接: ``` db.Close(); ``` 这样,我们就完成了在VS2019 MFC操作Excel的基本步骤。当然,在实际应用中,还可以根据具体需求进一步扩展功能。 ### 回答3: VS2019 MFC操作Excel的主要步骤如下: 首先,我们需要添加必要的头文件和文件。在MFC应用程序的代码中,包含<afxdisp.h>和<atlbase.h>这两个头文件。此外,还需要在项目的属性中添加Microsoft.Office.Interop.Excel作为附加依赖项。 接下来,我们可以使用Excel应用程序对象进行操作。可以通过以下代码进行初始化: ``` _Application excelApp; if (!excelApp.CreateDispatch(L"Excel.Application")) { AfxMessageBox(L"无法启动Excel应用程序。"); return; } excelApp.put_Visible(TRUE); ``` 然后,我们可以打开一个工作簿并选择一个工作表进行操作。可以使用以下代码打开工作簿: ``` _Workbook excelWorkbook; excelWorkbook = excelApp.get_Workbooks().Open(L"C:\\Path\\To\\Workbook.xlsx"); ``` 接着,我们可以访问工作表中的单元格数据,并进行读取或写入操作。例如,可以使用下面的代码来读取A1单元格的数据并将其显示在MessageBox中: ``` _Range excelRange; excelRange = excelWorkbook.get_Worksheets().get_Item(1).get_Range(COleVariant(L"A1"), COleVariant(L"A1")); CString value = (LPCTSTR)excelRange.get_Value2().bstrVal; AfxMessageBox(value); ``` 最后,在完成操作后,我们应该关闭工作簿和Excel应用程序,释放相关资源。可以使用以下代码来关闭工作簿和Excel应用程序: ``` excelWorkbook.Close(FALSE); excelApp.Quit(); ``` 以上是使用VS2019 MFC操作Excel的基本步骤。在实际开发中,根据具体需求,还可以进行更多的操作,如新增工作表、格式化单元格、插入图表等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值