1.函数说明

CRange::AttachDispatch() 是操作EXCEL的函数,位于CRange类中,可以用来锁定和读取EXCEL中的对应单元格。
使用此函数需加入EXCEL的组件库,且引入CRange.h,并获得work和sheet后方可使用。
2.函数原型
CRange::void AttachDispatch(LPDISPATCH lpDispatch,BOOL bAutorelease =1)
lpDispatch:锁定的目标指针。
bAutorelease:是否自动释放。
3.函数使用
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 (CoInitialize(NULL)!=0)
  {
  AfxMessageBox(_T("初始化COM支持库失败!"));
  return 0;
  }
  if(!app.CreateDispatch(_T("Excel.Application")))
  {
  AfxMessageBox(_T("无法启动Excel服务器!"));
  return 0;
  }
  books.AttachDispatch(app.get_Workbooks());
  lpDisp = books.Open(_T("C:\\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)1),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(_T("%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();
4.函数返回
无返回值

转载于:https://www.cnblogs.com/baoxiaofei/p/4162520.html

AttachDispatch相关推荐

  1. 使用VC来操作Excel表格的源码

    下面的代码段是关于使用VC来操作Excel表格的的代码,应该对小伙伴们也有用. if (CoInitialize(NULL) != 0) { AfxMessageBox("初始化COM支持库 ...

  2. VC操作Excel文件编程相关内容总结

    最近在做个数据库程序,因为有些数据用户要求导出到Excel文件显示(需要报给其他单位).所以查阅了一下相关的VC的Excel编程操作,总结一下吧:(所有资料来源于网络) 利用VC操作Excel的方法至 ...

  3. 一致的数据访问技术ADO/OLE DB

    Microsoft新近推出的UDA(Universal Data Access,一致数据访 问技术)为关系型或非关系型数据访问提供了一致的访问接口,为企业 级Intranet应用多层软件结构提供了数据 ...

  4. [00028]-[2015-09-23]-[00]-[VC 关于Excel操作的测试]

    BOOL CTest_App::InitInstance() {.......// 初始化Con支持库if(ConInitialize(NULL) != 0){AfxMessageBox(" ...

  5. 如何使用MFC和类型库创建自动化项目

    摘要 本文详细介绍了如何自动化像Microsoft Office这样支持COM的应用程序. 更多信息 下面部分介绍了如何创建MFC项目.采用Microsoft Excel举例,你可以将前8个步骤用于任 ...

  6. (转)另一篇:VC导出数据到EXCEL

    另一篇:VC导出数据到EXCEL 2010-08-28 17:03:47|  分类: 默认分类 |  标签: |字号大中小 订阅 我们制作应用软件的时候,经常要把结果以报表的形式输出,当前使用较为广泛 ...

  7. 利用vc的mfc做的Excel表格处理工具

    下面两个文件是逻辑处理文件.已经调通. CExcelmadetoolDlg.h 在这里插入代码片 // ExcelmadetoolDlg.h : header file //#if !defined( ...

  8. VC下设置Excel单元格的边框

    为了能使得输出到Excel中的数据显示表格,可以调用事先设置好的模板,但是不灵活.我花了一个中午的时间摸索出如何设置它了. 具体代码如下: LPDISPATCH pRange;  CString   ...

  9. VS2008中C++打开Excel(MFC)

    第一步:建立project 选择C++下的MFC Application 选择dialog based,中文.之后点击finish 第二步:导入EXCEL头文件 选择Project->AddCl ...

最新文章

  1. nginx文件服务器html美化,关于nginx:Nginx浏览目录配置及美化
  2. setup factory 设置自启动
  3. MapReduce编写实现wordcount词频统计
  4. NeHe OpenGL第二十五课:变形
  5. STM32工作笔记0015---STEMWIN在STM32F1开发板上的移植
  6. windows查看进程
  7. OpenBUGS抽样数据基本操作
  8. 转帖:对linux中半增加半连接数量和防止服务器被dos攻击
  9. Mac 下 Eclipse 添加 Dynamic Web Project 并配置 Tomcat
  10. 明月浩空播放器php源码,明月浩空音乐播放器
  11. 怎么用计算机求5次根号,学生用计算器上面5次根号怎么按?
  12. #2.生活小妙招-实现没有加速选项的视频加速操作
  13. 怎么注册免费苹果开发者账号?
  14. 消除macbook桌面快捷键图标上的箭头
  15. R包的安装以及安装失败的解决
  16. pip3.7.5安装环境依赖onnxruntime、onnx、numpy、skl2onnx
  17. graylog+kafka+zookeeper(单机测试及源码),graylog收集kafka(脚本创建发布订阅方式)存储的消息(四)
  18. linux nvcc未找到命令,打印本页 - nvcc命令无法识别
  19. 安装APK 免输入vivo、oppo密码
  20. 哈希表的基本概念详解以及具体实现(哈希函数、哈希冲突、负载因子)

热门文章

  1. 中小企业监控体系构建实战
  2. 魔术方法 :__callStatic( )实例详解
  3. jquery.zclip轻量级复制失效问题
  4. get和post方式提交中文乱码问题解决方案
  5. 互联网域名解析系统DNS的工作原理及相关服务配置
  6. openfire spark用户名问题续
  7. 城南云计算中心项目纳入国家储备库
  8. sqlserver触发器如何将一个库中的数据插入到另外一个库中
  9. 电子邮件通知系统前十名的 ”磁盘贪婪用户“
  10. 第一次用PHP做电影站 用thinkphp开发的!!