• VS2008中C++打开Excel(MFC)


    VS2008C++打开ExcelMFC)——摘自网络,并加以细化

    第一步:建立project(新建项目)

                           

    英文版

    中文版

     

    选择C++下的MFC Application(基于对话框的项目)

    英文版

    中文版

    选择dialog based(基于对话框),中文。之后点击finish(完成)

     

    第二步:导入EXCEL头文件

     

    英文版

     

    中文版-新建类

     

     

    中文版-新建TypeLib中的MFC类

     

    中文版-导入Excel相关类

     

    选择Project->Add Class->MFC Class From Typelib后,点击Add,进入MFC Class From Typelib Wizard对话框下,

    选择Microsoft Excel 11.0 Object Library<1.5>(我用的是Microsoft Office2003)将上图中Class添加进来。点击finish

     

    并在TExcel.cpp开始添加:

    #include"CApplication.h"

    #include"CRange.h"

    #include"CSheets.h"

    #include"CWorkbook.h"

    #include"CWorkbooks.h"

    #include"CWorksheet.h"

    #include"CWorksheets.h"

    在每一个添加进来的头文件中去掉

    #import "D:\Program Files X64\Microsoft Office\Office15\EXCEL.EXE" no_namespace

    第三步:打开COM口

     

     

    添加AfxOleInit();

    第四步:建一个Button按钮

     

     

    选择Toolbox中的Button在TExcel.rc的IDD_TEXCEL_DIALOG中点击,建立如上图的Button按钮将属性中的Caption修改为“打开Excel”

    第五步:为Button按钮编写程序

    双击“打开Excel”

     

     

     1 void CTExcelDlg::OnBnClickedButton1()
     2 {
     3     // TODO: 在此添加控件通知处理程序代码
     4     CApplication objApp; //判断是否存在EXCEL应用程序
     5     CWorkbooks objBooks;  
     6     CWorkbook objBook;
     7     CWorksheets objSheets;
     8     CWorksheet objSheet;
     9     CRange objRange,usedRange;//单元格获取
    10     VARIANT ret;
    11 
    12     objApp.CreateDispatch(_T("Excel.Application"));//判断是否存在EXCEL应用程序
    13     COleVariant VOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);
    14     objApp.put_Visible(TRUE);
    15     objApp.put_UserControl(TRUE);
    16     LPDISPATCH pwkbooks=objApp.get_Workbooks();
    17     objBooks.AttachDispatch(pwkbooks,TRUE);
    18     char currentprogrampath[MAX_PATH];
    19     objBooks=objApp.get_Workbooks();
    20     objBook=objBooks.Add(VOptional);
    21     objSheets=objBook.get_Sheets();
    22     CString str;
    23 
    24     str="A1";
    25     objSheet=objSheets.get_Item(COleVariant((short)1));
    26     objRange=objSheet.get_Range(COleVariant(str),COleVariant(str));
    27     objRange=objSheet.get_Range(COleVariant(_T("C4")),COleVariant(_T("B4")));
    28     objRange.put_Formula(COleVariant(_T("=RAND()*100000")));
    29     objRange.put_NumberFormat(COleVariant(_T("$0.00")));
    30     usedRange=objRange.get_EntireColumn();
    31     usedRange.AutoFit();
    32 }
    View Code

     

    第六步:避免Error     2     error C2059: syntax error : ','

    将CRange.h下VARIANT DialogBox()改为VARIANT _DialogBox()

    最后运行:

             

     

  • 相关阅读:
    机器学习与深度学习资料
    JVM调优实战
    Spark on Yarn下JVM的OOM问题及解决方式
    Centos环境下部署游戏服务器-简介
    新华网,要厚道
    物联网操作系统在运营商领域推广的理论分析
    Android基础之Activity launchMode详解
    《高效程序员的修炼》读后感
    Java科普之算法剖析
    Java科普之基础知识回顾
  • 原文地址:https://www.cnblogs.com/lzx838/p/4090095.html
Copyright © 2020-2023  润新知