VS2008平台下,MFC操作EXCEL简单示例
2009-09-08 00:54
513 查看
我的电脑上,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”到右侧的“Generated classes”并单击确定。
把生成的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);
经测试,可以运行~
生成时,选择“单文档框架”,“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”到右侧的“Generated classes”并单击确定。
把生成的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);
经测试,可以运行~
相关文章推荐
- NPOI操作Excel简单示例
- 简单通用的缺陷跟踪管理SAAS云平台,含工作流待办任务,转交、挂起、回退等操作,邮件提醒,能导入导出excel
- ruby操作EXCEL的简单示例
- MFC + VS2008 对Excel文件的操作
- NPOI操作Excel简单示例
- java导入导出excel常用操作小结及简单示例
- 使用VC++6.0 MFC OLE操作Excel 进行简单的读写
- thinkPHP5框架导出Excel文件简单操作示例
- java 操作Excel简单示例
- [转]MFC实现excel的读写操作
- PHP操作 Redis队列简单示例
- MFC操作excel
- vs2008环境下MFC对注册表的读写操作
- NPOI简单操作Excel
- 转载:C/MFC - 文本文件的简单操作
- 简单地使用jxl进行操作excel例子
- Linux(RedHat) 中多平台之间的文件共享简单示例
- C#前期绑定和后期绑定操作Excel-------实现简单打印功能
- Node.js操作Redis的简单示例
- POI操作Excel示例