VS2008平台下,MFC操作EXCEL简单示例
来源:互联网 发布:直销软件开发xazxrj 编辑:程序博客网 时间:2024/06/06 09:37
我的电脑上,office版本是2007的,安在C盘的默认位置上。
生成时,选择“单文档框架”,“Compound document support: Container ”其他默认~
在“ClassView”视图中,右键单击project,添加class。
选择“MFC->MFC Class from TypeLib”
Add class from:Registry中,选择“Microsoft Excel 12.0 Object Library<1.6>”
在下面选择,“_Application, _Worksheet, _Workbook, Font, Range, Worksheets, Workbooks”到右侧的“G”并单击确定。
把生成的CRange.h和CRange0.h中的“DialogBox”函数前面加上一个下划线,改成“_DialogBox”
注销掉,所有新添加的类的头文件中的“//#import "C://Program Files//Microsoft Office//Office12//EXCEL.EXE" no_namespace” 语句。
并把这些头文件中都添加一下代码
#include <afxdisp.h>
#import "C://Program Files//Common Files//Microsoft Shared//OFFICE12//mso.dll" rename("RGB", "MSRGB") rename("DocumentProperties", "JOEDocumentProperties")
#import "C://Program Files//Common Files//Microsoft Shared//VBA//VBA6//VBE6EXT.OLB" raw_interfaces_only, rename("Reference", "ignorethis"), rename("VBE", "JOEVBE")
#import "C://Program Files//Microsoft Office//OFFICE12//excel.exe" exclude("IFont", "IPicture") rename("RGB", "ignorethis"), rename("DialogBox", "ignorethis"), rename("VBE", "JOEVBE"), rename("ReplaceText", "JOEReplaceText"), rename("CopyFile","JOECopyFile"), rename("FindText", "JOEFindText"), rename("NoPrompt", "JOENoPrompt")
using namespace Office;
using namespace VBIDE;
using namespace Excel ;
在这些新添加的头文件的起始处添加:
#ifndef _XXXX_H
#define _XXXX_H
其中XXXX为文件名或者自行定义本头文件专用的宏标记
头文件尾部添加:
#endif
stdafx.h中include这些都文件~
于是就可以使用excel的编程方法咯。
比如,新建一个菜单栏选项,并添加消息响应函数,在其中添加如下代码:
CApplication app;
CWorkbooks books;
CWorkbook book;
CWorksheets sheets;
CWorksheet sheet;
CRange0 range;
CFont0 font;
CRange0 cols;
int i = 3;
CString str1, str2;
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
if( !app.CreateDispatch(_T("Excel.Application")))
{
MessageBoxW(_T("无法创建Excel应用!"));
return;
}
books=app.get_Workbooks();
book=books.Add(covOptional);
sheets=book.get_Sheets();
sheet=sheets.get_Item(COleVariant((short)1));
range=sheet.get_Range(COleVariant(_T("A1")),COleVariant(_T("A1")));
range.put_Value2(COleVariant(_T("HELLO EXCEL!")));
font=range.get_Font();
font.put_Bold(COleVariant((short)TRUE));
range=sheet.get_Range(COleVariant(_T("A2")),COleVariant(_T("A2")));
range.put_Formula(COleVariant(_T("=RAND()*100000")));
range.put_NumberFormat(COleVariant(_T("$0.00")));
str1.Format(_T("A%d"),i);
str2.Format(_T("A%d"),i);
range=sheet.get_Range(COleVariant(str1),COleVariant(str2));
str1.Format(_T("%d"),44);
range.put_Value2(COleVariant(str1));
cols=range.get_EntireColumn();
cols.AutoFit();
app.put_Visible(TRUE);
app.put_UserControl(TRUE);
经测试,可以运行~
- VS2008平台下,MFC操作EXCEL简单示例
- MFC + VS2008 对Excel文件的操作
- vs2008下用MFC读写excel文件
- java 操作Excel简单示例
- NPOI操作Excel简单示例
- VS2008下水晶报表之简单示例
- VS2008下水晶报表之简单示例
- VS2008环境使用MFC操作操作excel文件
- VS2008环境使用MFC操作读取excel文件
- VS2008环境使用MFC操作读取excel文件
- VS2008环境使用MFC操作读取excel文件(OLE/COM)
- VS2008下编译MFC报平台版本低解决办法
- Windows平台下JNI简单示例
- MFC 读取EXCEL表格 VS2008
- vs2008 mfc 读写excel文件
- vs2008环境下MFC对注册表的读写操作
- VS2008 thrift简单使用示例
- VS2008操作SQLCE3.5示例
- 一个简单而又灵活的IOCP模块——完成端口通讯服务器(IOCP Socket Server)设计(四)
- Java多线程初学者指南(3):使用Runnable接口创建线程
- getDefinitionByName动态创建类。
- 【CEO来信】李开复:创新工场--我的新公司
- xcache本地缓存的设计(一)
- VS2008平台下,MFC操作EXCEL简单示例
- Java多线程初学者指南(4):线程的生命周期
- ASP如何计算中英文混合字符串长度和截取字符串
- CoProc.au3
- 大胆的投资自我
- 李开复:再见,谷歌
- 工作日志——2009-09-07
- ANT_Xdoclet
- 更新源码