• vc操作excel:[1]初始化连接、创建和写入


    1. 新建MFC工程,工程名为 3 。在选择From a type library时,选择Microsoft Office安装目录下的office11文件夹,将文件过滤器改为 所有文件,找到excel.exe文件,确定,按shift添加所有的类。(这里有疑问,可参见我的上一篇经验“vc操作word:[1]初始化连接、创建和写入。按:本来想写成系列经验的,奈何百度经验这几天出问题了)

      vc操作excel:[1]初始化连接、创建和写入
      vc操作excel:[1]初始化连接、创建和写入
    2.  

      先初始化COM库,在CMy3App类的InitInstance函数中,加入以下代码:

      if(CoInitialize(NULL)!=S_OK)

      {

      AfxMessageBox("Fail");

      return FALSE;

      }

      vc操作excel:[1]初始化连接、创建和写入
    3.  

      新建一个类型为Generic Class的类,命名为CMeExcel

      vc操作excel:[1]初始化连接、创建和写入
    4.  

      在文件视图区打开MeExcel.h文件,如图所示,加入以下代码:

      //头文件

      #include"comdef.h"

      #include"atlbase.h"

      #include"excel.h"

      以及

      //变量申明和函数定义

      _Application m_exApp;   //Application

      _Workbook m_exBook;   //表格,单数

      Workbooks m_exBooks;  //表格,复数

      _Worksheet m_exSheet;  //表单

      Worksheets m_exSheets;

      Range m_exRange;           //类似于单元格

      BOOL CreateApplication();

      BOOL CreateWorksheet();

      BOOL SetItem();

      vc操作excel:[1]初始化连接、创建和写入
    5.  

      打开MeExcel.cpp文件,如图加入以下代码:

      BOOL CMeExcel::CreateWorksheet()

      {

      m_exBooks.AttachDispatch(m_exApp.GetWorkbooks());

      m_exBook.AttachDispatch(m_exBooks.Add(_variant_t("")));

      m_exSheets.AttachDispatch(m_exBook.GetWorksheets());

      m_exSheet.AttachDispatch(m_exSheets.GetItem(_variant_t("sheet1")));

      return TRUE;

      }

      BOOL CMeExcel::SetItem()

      {

      m_exRange.AttachDispatch(m_exSheet.GetCells());

      m_exRange.SetItem(_variant_t((long)6),_variant_t((long)4),_variant_t("Hello"));

      return FALSE;

      }

      //参照,word文档建立的方法,会对它有更深刻的理解

      vc操作excel:[1]初始化连接、创建和写入
    6.  

      现在开始调用类函数,创建excel表格,并写入数据。只需在对话框中添加成员变量 CMeExcel m_meExcel,在对话框初始化函数中加入以下代码:

      m_meExcel.CreateApplication();

      m_meExcel.CreateWorksheet();

      m_meExcel.SetItem();

      vc操作excel:[1]初始化连接、创建和写入
      vc操作excel:[1]初始化连接、创建和写入
    7.  

      点击运行。在第三行第五列显示”Hello“。也就是运行m_meExcel.SetItem();函数的结果。

      vc操作excel:[1]初始化连接、创建和写入
    8.  

      补充:在第一次编译运行的时候,出现...vc98atlincludeatlbase.h(4497) : error C2660: 'VarCmp' : function does not take 3 parameters的错误,打开atlbase.h文件,果断看不懂,按字面意思的理解,VarCmp函数不带3个参数。在网上找资料,彻底被误导了。打开MSDN,查找VarCmp,好吧,我承认技术不行看不懂,但是它说,总共有4个参数,当最后一个参数为1的时候,Ignore case,忽视的情况,不管,直接传个 1 进去。编译成功!

      vc操作excel:[1]初始化连接、创建和写入
      vc操作excel:[1]初始化连接、创建和写入
  • 相关阅读:
    React初识整理(二)--生命周期的方法
    React初识整理(一)
    前后端分离浅析
    url地址数据参数转化JSON对象(js三种方法实现)
    js和JQuery中的获取宽、高、位置等方法整理
    游民轮播图效果实现
    焦点轮播图效果实现
    iOS开发debug集锦
    实现一个 RESTful API 服务器
    从iOS的图片圆角想到渲染
  • 原文地址:https://www.cnblogs.com/huhewei/p/6219634.html
Copyright © 2020-2023  润新知