操作Excel文件初始化:
a. project->add class->MFC class from typelib (项目->添加类->Typelib中的MFC类)导入Excel.exe,一般都在C:/Program Files/Microsoft Office/Office12路径下(即选择你的office安装路径下的excel.exe加入)
b. 选中以下几项_Application,_WorkSheet,_WorkBook,WorkSheets,WorkBooks,Range,然后导入;
c. 导入后自动在工程中添加CApplication,CWorkSheet,CWorkBook,CWorkSheets,CWorkBooks,CRange这些类;
然后需要把这些类的头文件中的第一句话 #import ".......EXCEL.EXE" nonamespace 删除;
引入之后如果编译遇到错误,Not enough actual parameters for macro 'DialogBoxW'.
解决方法是在CRange类中,

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

DialogBox()前面添加下划线变成_DialogBox(),解决了!

3.操作excel文件
在“资源”里面选择MFC自动建立的对话框,双击“打开”按钮(若没有就自己做一个),然后程序会将你到对这个按钮的函数里,在函数中写如下内容: (文件是CxxxDlg.cpp xxx是你的项目名称)

在这个文件的前端记得加入:
#include "CApplication.h"
#include "CRange.h"
#include "CWorkbook.h"
#include "CWorkbooks.h"
#include "CWorksheet.h"
#include "CWorksheets.h"

void Cexcel打开3Dlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
CApplication app;
CWorkbooks books;
CWorkbook book;
CWorksheets sheets;
CWorksheet sheet;
CRange range;
CRange iCell;
LPDISPATCH lpDisp;
COleVariant vResult;
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
if(!app.CreateDispatch(L"Excel.Application"))
{
AfxMessageBox(L"无法启动Excel服务器!");
return;
}
books.AttachDispatch(app.get_Workbooks());
lpDisp = books.Open(“d://test.xls”,covOptional, covOptional, covOptional, covOptional, covOptional,covOptional, covOptional, covOptional, covOptional, covOptional,covOptional, covOptional, covOptional,covOptional);

//得到Workbook
book.AttachDispatch(lpDisp);
//得到Worksheets
sheets.AttachDispatch(book.get_Worksheets());

//得到当前活跃sheet
//如果有单元格正处于编辑状态中,此操作不能返回,会一直等待
lpDisp=book.get_ActiveSheet();
sheet.AttachDispatch(lpDisp);
//读取第一个单元格的值
range.AttachDispatch(sheet.get_Cells());
range.AttachDispatch(range.get_Item (COleVariant((long)2),COleVariant((long)1)).pdispVal );
/*COleVariant*/ vResult =range.get_Value2();
CString str;
if(vResult.vt == VT_BSTR) //字符串
{
str=vResult.bstrVal;
}
else if (vResult.vt==VT_R8) //8字节的数字
{
str.Format(L"%f",vResult.dblVal);
}

/*else if(vResult.vt==VT_DATE) //时间格式
{
SYSTEMTIME st;
VariantTimeToSystemTime(&vResult.date, &st);
}
else if(vResult.vt==VT_EMPTY) //单元格空的
{
str="";
}*/
books.Close();
app.Quit(); // 退出
//释放对象
range.ReleaseDispatch();
sheet.ReleaseDispatch();
sheets.ReleaseDispatch();
book.ReleaseDispatch();
books.ReleaseDispatch();
app.ReleaseDispatch();
OnOK();
MessageBox(str);
}

开始有一个教程没有如下代码(上一个代码框已包含)
这样会导致程序在关闭以后仍然有excel的进程存在,文件不关闭,使用以上代码后解决。
运行结果是,程序会将d:/test.xls打开,并且在对话框中输入格(1,1)的数据。

转载于:https://www.cnblogs.com/xiao0913/p/6196759.html

MFC操作读取excel文件相关推荐

  1. VS2008环境使用MFC操作读取excel文件

    踏破铁鞋无觅处,得来费死了工夫. 本文章的引用来源,本人综合而成. http://blog.csdn.net/chasemylov/archive/2010/08/27/5844826.aspx ht ...

  2. python read_excel 参数_详解pandas库pd.read_excel操作读取excel文件参数整理与实例

    详解pandas库pd.read_excel操作读取excel文件参数整理与实例 来源:中文源码网    浏览: 次    日期:2019年11月5日 详解pandas库pd.read_excel操作 ...

  3. python read_excel header_详解pandas库pd.read_excel操作读取excel文件参数整理与实例

    除了使用xlrd库或者xlwt库进行对excel表格的操作读与写,而且pandas库同样支持excel的操作:且pandas操作更加简介方便. 首先是pd.read_excel的参数:函数为: pd. ...

  4. 【python】pandas库pd.read_excel操作读取excel文件参数整理与实例

    除了使用xlrd库或者xlwt库进行对excel表格的操作读与写,而且pandas库同样支持excel的操作:且pandas操作更加简介方便. 首先是pd.read_excel的参数:函数为: pd. ...

  5. 关于MFC中读取EXCEL文件的操作

    转自:点击打开链接 .h文件的源码代码如下: 其中的头文件都是OLE的头文件.如何导出可以参考 http://blog.csdn.net/wyz365889/article/details/75999 ...

  6. MFC读取Excel文件+数据处理+写入Excel

    在日常编程的过程中,我们经常会遇到需要读写文件的操作,当然,最好的选择是数据库来进行读写,但是由于数据库使用环境的要求(比如某些数据库要求必须安装数据库软件后才能使用),同时,要进行数据库操作需要对S ...

  7. python读取excelsheet-python实现读取excel文件中所有sheet操作示例

    本文实例讲述了python实现读取excel文件中所有sheet操作.分享给大家供大家参考,具体如下: 表格是这样的 实现把此文件所有sheet中 标识为1 的行,取出来,存入一个字典.所有行组成一个 ...

  8. python3读写excel文件_python3 循环读取excel文件并写入json操作

    文件内容: excel内容: 代码: import xlrd import json import operator def read_xlsx(filename): # 打开excel文件 data ...

  9. python循环读取excel存入列表_python3 循环读取excel文件并写入json操作

    文件内容: excel内容: 代码: import xlrd import json import operator def read_xlsx(filename): # 打开excel文件 data ...

  10. python 读excel中的sheet_python实现读取excel文件中所有sheet操作示例

    本文实例讲述了python实现读取excel文件中所有sheet操作.分享给大家供大家参考,具体如下: 表格是这样的 实现把此文件所有sheet中 标识为1 的行,取出来,存入一个字典.所有行组成一个 ...

最新文章

  1. C++11 :STL中的 iota ()函数
  2. 瞎聊Spring Cloud
  3. linux中deb怎样安装
  4. 高级数据结构与算法 | B树、B+树、B*树
  5. pythondistutils安装_安装msi后的python distutils
  6. asynchttpclient 超时_dnf这才是混子的毕业套装,却发现超时空漩涡不买账!
  7. css-样式重构-代码分享
  8. Linux 统计代码行数
  9. python的内置函数 剖析
  10. mysql截取小数点后4位_MySQL 截取小数位数
  11. js函数中变量声明提前
  12. 7zip压缩zip格式时文件名支持中文的设置
  13. javascript函数传参
  14. UEFI安装win10+manjaro双系统
  15. 单片机的ISP是什么
  16. Unity接TalkingData自动集成XCode
  17. 【前端技术】一篇文章搞掂:CSS
  18. 使用python对股票数据分析预测
  19. 为什么靠谱的老板,不会要求员工忠诚?
  20. 连接mysql数据库有几种方式_数据库连接的几种常用方式

热门文章

  1. 携程App的网络性能优化实践
  2. 为什么在Linux执行自己的程序要在前面加./
  3. 西部数据暂停与华为的合作关系及发货
  4. 台湾台积电为华为两肋插刀,扛住压力,单日损失1426亿元
  5. Python之父再度发声:我们能为中国的“996”程序员做什么?
  6. 科技圈晒开工福利!小米最直接,腾讯最传统,阿里最豪气,你们家的呢?
  7. python基础之python介绍
  8. Failed to start OpenLDAP Server Daemon
  9. A Beginner's Guide To Understanding Convolutional Neural Networks Part One (CNN)笔记
  10. CentOS7使用yum安装mysql5.7