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”

 void CTExcelDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
CApplication objApp; //判断是否存在EXCEL应用程序
CWorkbooks objBooks;
CWorkbook objBook;
CWorksheets objSheets;
CWorksheet objSheet;
CRange objRange,usedRange;//单元格获取
VARIANT ret; objApp.CreateDispatch(_T("Excel.Application"));//判断是否存在EXCEL应用程序
COleVariant VOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);
objApp.put_Visible(TRUE);
objApp.put_UserControl(TRUE);
LPDISPATCH pwkbooks=objApp.get_Workbooks();
objBooks.AttachDispatch(pwkbooks,TRUE);
char currentprogrampath[MAX_PATH];
objBooks=objApp.get_Workbooks();
objBook=objBooks.Add(VOptional);
objSheets=objBook.get_Sheets();
CString str; str="A1";
objSheet=objSheets.get_Item(COleVariant((short)));
objRange=objSheet.get_Range(COleVariant(str),COleVariant(str));
objRange=objSheet.get_Range(COleVariant(_T("C4")),COleVariant(_T("B4")));
objRange.put_Formula(COleVariant(_T("=RAND()*100000")));
objRange.put_NumberFormat(COleVariant(_T("$0.00")));
usedRange=objRange.get_EntireColumn();
usedRange.AutoFit();
}

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

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

最后运行:

   

VS2008中C++打开Excel(MFC)的更多相关文章

  1. VB中后台打开Excel文件实现代码

    某些时候需要打开Excel文件来获取或者写入数据,但又不希望跳出打开的Excel文件窗口,可以用下面的代码: Dim eb As New excel.Application, wb as excel. ...

  2. 如何在单独的窗口中打开 Excel 文件

    如何在单独的窗口中打开 Excel 文件 文章编号:087583     2012/11/1 18:45:29 故障现象: 如何在单独的窗口中打开 Excel 文件? 解决方案: 比较安全的方法就是直 ...

  3. C#中的Excel操作【1】——设置Excel单元格的内容,打开Excel文件的一种方式

    前言 作为项目管理大队中的一员,在公司里面接触最多的就是Excel文件了,所以一开始就想从Excel入手,学习简单的二次开发,开始自己的编程之路! 程序界面 功能说明 打开文件按钮,可以由使用者指定要 ...

  4. 15、解决14中csv用excel打开乱码的问题 open('zhihu.csv','w',newline='',encoding='utf-8-sig')

    解决14中csv用excel打开乱码的问题 ,其实就是在写csv的时候把 utf-8 改成 utf-8-sig open('zhihu.csv','w',newline='',encoding='ut ...

  5. c#中打开Excel文档

    方法一:(调用Excel的COM组件)       在项目中打开Add Reference对话框,选择COM栏,之后在COM列表中找到"Microsoft Excel 11.0 Object ...

  6. Outlook不能预览和打开Excel文件:

    无法打开Outlook邮箱中的Excel附件,确实让人恼火 先不要着急: 1.在开始->运行,输入"regedit" 2.找到路径:HKEY_CURRENT_USER\Sof ...

  7. C#中datatable导出excel(三种方法)

    方法一:(拷贝直接可以使用,适合大批量资料, 上万笔) Microsoft.Office.Interop.Excel.Application appexcel = new Microsoft.Offi ...

  8. 打开Excel的报错,提示:不能使用对象链接和嵌入

    计算机这几天在打开Excel文档的时候,提示:不能使用对象链接和嵌入, 而且出现如下的提示:Microsoft Office Excel进程已停止工作, 每次打开Excel的时候都是同样的问题,害我跟 ...

  9. VS2008中开发智能设备程序的一些总结

    原文链接:http://blog.csdn.net/citybug_nj/article/details/2598705 程序中包括四个部分: 系统配置 这个部分用来配置系统中的相关参数,参数包括数据 ...

随机推荐

  1. asp.net--常用的数据库链接字符串

    本地连接 privatestring conn_string ="Data Source=localhost;Initial Catalog=SQLtest;Integrated Secur ...

  2. Spring MVC-表单(Form)标签-复选框集合(Checkboxes)示例(转载实践)

    以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_checkboxes.htm 说明:示例基于Spring MVC 4.1.6. 以 ...

  3. [Javascript Crocks] Understand the Maybe Data Type

    In this lesson, we’ll get started with the Maybe type. We’ll look at the underlying Just and Nothing ...

  4. 150723培训心得(queue)

    queue(STL中函数,就是指队列) #include <iostream> #include <queue> using namespace std;        //这 ...

  5. BZOJ 4517: [Sdoi2016]排列计数 错排+逆元

    4517: [Sdoi2016]排列计数 Description 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n 个数在序列中各出现了一次 若第 i 个数 A[i] 的值为 i, ...

  6. 约瑟夫环问题的链表解法和数学解法(PHP)

    约瑟夫环问题 一群猴子排成一圈.按1,2,-,n依次编号.然后从第1仅仅開始数,数到第m仅仅,把它踢出圈.从它后面再開始数,再数到第m仅仅.在把它踢出去-.如此不停的进行下去.直到最后仅仅剩下一仅仅猴 ...

  7. Eclipse打开ftl文件,高亮显示

    解决方式一:下载eclipse相关的freemarker插件 解决方式二:原生解决方式,方法特点无需下载插件,和eclipse编辑html和jsp文件一模一样 步骤: 1:windows---pref ...

  8. VIM中括号的自动补全与删除

    先放来源 http://oldj.net/article/vim-parenthesis/ 很多现代 IDE 都有自动补全配对括号的功能,比如输入了左括号“(”,IDE 就自动在后面添加一个对应的右括 ...

  9. 【转】学会这13个原则写UI界面文案,用户才能秒懂

    原文网址:http://www.niaogebiji.com/article-12011-1.html 摘要: 首先,在写UI文案之前,为了理清思路,要先搞清楚三个问题:我(设计师)想让用户做什么? ...

  10. 函数和指针 C++

    一.用函数指针变量调用函数. 指针变量也可以指向一个函数,一个函数在编译时被分配给一个入口地址.这个函数入口地址就称为函数的指针.可以用一个指针变量指向函数,然后通过该指针变量调用此函数. 定义指向函 ...