VS2008中C++打开Excel(MFC)
VS2008中C++打开Excel(MFC)——摘自网络,并加以细化
第一步:建立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)的更多相关文章
- VB中后台打开Excel文件实现代码
某些时候需要打开Excel文件来获取或者写入数据,但又不希望跳出打开的Excel文件窗口,可以用下面的代码: Dim eb As New excel.Application, wb as excel. ...
- 如何在单独的窗口中打开 Excel 文件
如何在单独的窗口中打开 Excel 文件 文章编号:087583 2012/11/1 18:45:29 故障现象: 如何在单独的窗口中打开 Excel 文件? 解决方案: 比较安全的方法就是直 ...
- C#中的Excel操作【1】——设置Excel单元格的内容,打开Excel文件的一种方式
前言 作为项目管理大队中的一员,在公司里面接触最多的就是Excel文件了,所以一开始就想从Excel入手,学习简单的二次开发,开始自己的编程之路! 程序界面 功能说明 打开文件按钮,可以由使用者指定要 ...
- 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 ...
- c#中打开Excel文档
方法一:(调用Excel的COM组件) 在项目中打开Add Reference对话框,选择COM栏,之后在COM列表中找到"Microsoft Excel 11.0 Object ...
- Outlook不能预览和打开Excel文件:
无法打开Outlook邮箱中的Excel附件,确实让人恼火 先不要着急: 1.在开始->运行,输入"regedit" 2.找到路径:HKEY_CURRENT_USER\Sof ...
- C#中datatable导出excel(三种方法)
方法一:(拷贝直接可以使用,适合大批量资料, 上万笔) Microsoft.Office.Interop.Excel.Application appexcel = new Microsoft.Offi ...
- 打开Excel的报错,提示:不能使用对象链接和嵌入
计算机这几天在打开Excel文档的时候,提示:不能使用对象链接和嵌入, 而且出现如下的提示:Microsoft Office Excel进程已停止工作, 每次打开Excel的时候都是同样的问题,害我跟 ...
- VS2008中开发智能设备程序的一些总结
原文链接:http://blog.csdn.net/citybug_nj/article/details/2598705 程序中包括四个部分: 系统配置 这个部分用来配置系统中的相关参数,参数包括数据 ...
随机推荐
- GreenPlum 集群常用命令
GreenPlum 常用命令 gpstate 命令 参数 作用 gpstate -b => 显示简要状态 gpstate -c => 显示主镜像映射 gpstart -d => 指定 ...
- Django admin(四)一些有用定制
原文:https://www.cnblogs.com/linxiyue/p/4075048.html Model实例,myapp/models.py: 1 2 3 4 5 6 7 8 9 10 11 ...
- ExtJs之Ext.comboBox的远程数据源读取程序
既然可以测试本地AJAX,那就把书前面的代码作一次学习吧. <!DOCTYPE html> <html> <head> <title>ExtJs< ...
- COGS——C1176. [郑州101中学] 月考
http://cogs.pro/cogs/problem/problem.php?pid=1176 [题目描述] 在上次的月考中Bugall同学违反了考场纪律还吃了处分,更可气的是在第二天的校会时 间 ...
- redis开发为什么选用skiplist?
There are a few reasons: 1) They are not very memory intensive. It's up to you basically. Changing p ...
- Go语言net/http 解读.
Http包提供实现HTTP客户端和服务端的方法与函数. Get.Head.Post.PostForm配合使用实现HTTP请求: resp, err := http.Get("http://e ...
- Docker入门介绍
Docker是一种虚拟化技术 刚開始看Docker,感觉非常抽象"An open platform for distributed applications for develo ...
- Swift----安装,简单介绍
安装: 眼下最新的稳定版是 Swift 0.94.1 1.下载:wget http://swiftlang.org/packages/swift-0.94.1.tar.gz 2.解压:tar xfz ...
- HDU 1429--胜利大逃亡(续)【BFS && 状态压缩】
胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total S ...
- Aizu/Aoj 0033 Ball
题目大意: 有编号1到10共10个球,从上方丢下去,入口处可以选择进入左边或者右边,最后10个球全部落下去后如果左右两侧都是从小到大的顺序,则输出YES:否则输出NO. 题目原本的标签枚举,复杂度是2 ...