VC++操作Excel在VS2008环境中的配置过程
2014-01-26 17:18
489 查看
在网上找了一些方法不是特别行的通,在同事的知道下测试成功了,记录下来。
1.新建一个MFC Application,选择Dialog based,创建工程。
2.放置一个button控件。
3.在classView视图中,右键点击工程名,Add->class,在弹出的对话框中选择MFC class Form TypeLib,在打开的对话框中按图示选择:
将_Application,_WorkBook, _WorkSheet, Range, WorkBooks, Worksheets选入右边,点击确定。
此时在类视图中增加了几个新类
4.将新产生的类的每个头文件中的最开头的
#import "C:\\Program Files\\Microsoft Office\\Office12\\EXCEL.EXE" no_namespace
类似语句注释掉
将
VARIANT DialogBox()
{
VARIANT result;
InvokeHelper(0xf5, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL);
return result;
}
DialogBox之前加入下划线:
VARIANT _DialogBox()
{
VARIANT result;
InvokeHelper(0xf5, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL);
return result;
}
注释:如果不进行此操作,在引用的时候会出现非常多的错误。
5.在CXXXXXDlg.h中引入
#include "CApplication.h"
#include "CRange.h"
#include "CWorkbook.h"
#include "CWorkbooks.h"
#include "CWorksheet.h"
#include "CWorksheets.h"
头文件
6.在CXXXXDlg.cpp中引入
#include "comdef.h"
7.在CXXXXApp的InitInstance()函数中加入AfxOleInit();函数。
8.在按钮的单击事件响应函数中加入
CApplication app;
CWorkbooks books;
CWorkbook book;
CWorksheets sheets;
CWorksheet sheet;
CRange range;
CRange cols;
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
if(!app.CreateDispatch(_T("Excel.Application")))
{
MessageBox(_T("创建Excel服务失败...."),_T("信息提示"), MB_OK);
return;
}
books=app.get_Workbooks();
book=books.Add(covOptional);
sheets=book.get_Sheets();
sheet=sheets.get_Item(_variant_t((short)1));
range=sheet.get_Range(_variant_t(_T("A1")),_variant_t(_T("A1")));
range.put_Value2(_variant_t("HELLO EXCEL!"));
range=sheet.get_Range(_variant_t("A2"),_variant_t("A2"));
range.put_Formula(_variant_t("=RAND()*100000"));
range.put_NumberFormat(_variant_t("$0.00"));
cols=range.get_EntireColumn();
cols.AutoFit();
app.put_Visible(TRUE);
app.put_UserControl(TRUE);
运行效果图:
第一次编写用VC操作Excel的程序,其中 遇到了 不少的问题 ,通过 查找资料,最后可以成功编译通过了,最后把正确的过程记录一下,希望对其他人有所帮助。
$(".MathJax").remove();
1.新建一个MFC Application,选择Dialog based,创建工程。
2.放置一个button控件。
3.在classView视图中,右键点击工程名,Add->class,在弹出的对话框中选择MFC class Form TypeLib,在打开的对话框中按图示选择:
将_Application,_WorkBook, _WorkSheet, Range, WorkBooks, Worksheets选入右边,点击确定。
此时在类视图中增加了几个新类
4.将新产生的类的每个头文件中的最开头的
#import "C:\\Program Files\\Microsoft Office\\Office12\\EXCEL.EXE" no_namespace
类似语句注释掉
将
VARIANT DialogBox()
{
VARIANT result;
InvokeHelper(0xf5, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL);
return result;
}
DialogBox之前加入下划线:
VARIANT _DialogBox()
{
VARIANT result;
InvokeHelper(0xf5, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL);
return result;
}
注释:如果不进行此操作,在引用的时候会出现非常多的错误。
5.在CXXXXXDlg.h中引入
#include "CApplication.h"
#include "CRange.h"
#include "CWorkbook.h"
#include "CWorkbooks.h"
#include "CWorksheet.h"
#include "CWorksheets.h"
头文件
6.在CXXXXDlg.cpp中引入
#include "comdef.h"
7.在CXXXXApp的InitInstance()函数中加入AfxOleInit();函数。
8.在按钮的单击事件响应函数中加入
CApplication app;
CWorkbooks books;
CWorkbook book;
CWorksheets sheets;
CWorksheet sheet;
CRange range;
CRange cols;
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
if(!app.CreateDispatch(_T("Excel.Application")))
{
MessageBox(_T("创建Excel服务失败...."),_T("信息提示"), MB_OK);
return;
}
books=app.get_Workbooks();
book=books.Add(covOptional);
sheets=book.get_Sheets();
sheet=sheets.get_Item(_variant_t((short)1));
range=sheet.get_Range(_variant_t(_T("A1")),_variant_t(_T("A1")));
range.put_Value2(_variant_t("HELLO EXCEL!"));
range=sheet.get_Range(_variant_t("A2"),_variant_t("A2"));
range.put_Formula(_variant_t("=RAND()*100000"));
range.put_NumberFormat(_variant_t("$0.00"));
cols=range.get_EntireColumn();
cols.AutoFit();
app.put_Visible(TRUE);
app.put_UserControl(TRUE);
运行效果图:
第一次编写用VC操作Excel的程序,其中 遇到了 不少的问题 ,通过 查找资料,最后可以成功编译通过了,最后把正确的过程记录一下,希望对其他人有所帮助。
$(".MathJax").remove();
相关文章推荐
- 在VS2008中配置WDK7600驱动开发环境 VC6 + 最新WDK7600 驱动开发的安装配置
- VC配置通过OLE操作EXCEL
- VC环境下使用HALCON图像处理库的配置与基本操作
- VC操作word和excel文件,查询与读写[依赖office环境]
- VS2008环境下C#对Excel的操作 - [C#] (收集转载)
- 在MFC对EXCEL进行操作所要做的环境配置
- ffmpeg编码器+VS2008的环境配置以及视频编码过程详解
- VC环境下对EXCEL的操作
- Net操作Excel,不依赖服务器端环境配置(终极方法NPOI)转。
- java 操作Excel环境配置
- Flask安装过程中“配置虚拟环境”步骤报错,找不到activate.bat
- Web Service环境配置过程
- OpenGL超级宝典(第五版) 环境配置(WinXp+VS2008)
- OpenGL学习笔记【一】——VS2008与OpenGL2.0环境配置
- JSP开发环境配置全过程
- 让你提前认识软件开发(51):VC++集成开发环境中Linux下Pclint工程的配置方法及常见错误修改
- PHP开发环境配置过程详解
- hadoop环境配置操作点滴记录
- Linux下jsp开发环境,apache,tomcat服务器配置过程
- Flex与.NET互操作(七):了解FluorineFx的环境配置(远程对象、网关、通道、目的地)