• MFC 操作excel


    1.新建一个MFC工程,如对话框工程。

    2.点击 项目--添加类-- MFC -- TypeLib中的MFC类,点击 "添加"

    3.可用的类型裤中,找到 "Microsoft Excel 14.0 Object Library<1.7>" (不同版本的excel不同类型裤),接着添加以下9项:

    1>_Application

    2>_Chart

    3>_Workbook

    4>_Worksheet

    5>Charts

    6>Font

    7>Range

    8>Workbooks

    9>WorkSheets

    则会自动生成9个头文件,把头文件添加到 XXXDlg.cpp 中

    #include "CApplication.h"

    #include "CChart.h"

    #include "CCharts.h"

    #include "CFont0.h"

    #include "CRange.h"

    #include "CWorkbook.h"

    #include "CWorkbooks.h"

    #include "CWorksheet.h"

    #include "CWroksheets.h"

    尝试重新编译工程,此时弹出一堆的错误。

    将以上9个.h中的

    #import "xxx"

    全部屏蔽掉即可。

    4.在 工程 CXXXApp::InitInstance() 里添加对OLE的支持

    if (!AfxOleInit())

    {

      AfxMessageBox(_T("Can't Initialize COM dll!"));

      return FALSE;

    }

    5.重新编译工程,此时 CRange.h 的 DialogBox函数 会报错误,将 DialogBox 函数名 改为 _DialogBox 即可。

    6.添加一个按钮Run,然后点击时启动Excel。函数如下

    void XXXDlg::OnClickedRun()

    {

      COleVariant covTrue((short)TRUE), covFalse((short)FALSE), covOptional(long)DISP_E_PARAMNOTFOUND, VT_ERROR);

      CApplication app;

      if ( !app.CreateDispatch(TEXT("Excel.Application")) )

      {

        AfxMessageBox(TEXT("Could not start Excel and get application object!"));

        return;

      }

      

      app.put_Visible(TRUE);

      app.pu_UserControl(TRUE);

    }

  • 相关阅读:
    批量修改文件编码
    RAII机制
    C++20新特性一:模块Module
    vue 使用v-for遍历对象属性
    Chrome 91 本地跨域无法携带cookies问题解决
    Vue 函数式组件的使用技巧
    URL编码解决中文字符乱码(encodeURIComponent和decodeURIComponent)
    vue的provide/inject实现响应式数据监听
    vue3之watch监听
    Vue3: 知识总结: hooks
  • 原文地址:https://www.cnblogs.com/sylar-liang/p/5430717.html
Copyright © 2020-2023  润新知