欢迎来到天天文库
浏览记录
ID:57689188
大小:245.50 KB
页数:11页
时间:2020-09-01
《MFC中使用EXCEL方法及源码.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、使用MFC操作EXCEL文件一、加载1、在VC6.0里创建一个MFC工程2、打开MFCClassWizard窗口(查看—>建立类向导),选择Automation,单击AddClass按钮,选择Fromatypelibrary...,弹出文件选择对话框,之后定位到C:ProgramFilesMicrosoftOfficeOFFICE11EXCEL.EXE,在生成类中添加所有的对象(其实添加需要的即可,为了简便,不出错保留了冗余),如下图。3、返回编辑器,查看工程文件,可发现多了EXCEL.H及EXCEL.CPP两个文件,拷贝出来,放在VS2005需要使用
2、excel的工程文件中。4.打开stdafx.h头文件确保包含如下头文件:#include(这个一般有了)#include"excel.h"(手动添加这个即可)5.打开TestExcel.cpp文件,修改CTestExcelApp::InitInstance(),加入如下代码:if(!AfxOleInit()){AfxMessageBox("初始化Ole出错!");returnFALSE;}为保证编译时不产生重复定义错误(可以验证一下是否成功加载,没有也能正常执行),我编译时出现了很多“类重复定义”异常,打开excel.h文件,在文件开始
3、位置加入如下代码:#if!defined_HEAD_FILE_EXCEL9_#define_HEAD_FILE_EXCEL9_相应的,在文件末尾加入:#endif成功二、操作EXCEL文件1.新建一个excel表,并填充两个单元格的实例voidCTestExcelDlg::OnButton1(){//Workbooks—>Workbook—>Worksheets—>Worksheet—>Range_Applicationapp;//Excel应用程序接口Workbooksbooks;//工作薄集合_Workbookbook;//工作薄Worksheetsshe
4、ets;//工作表集合_Worksheetsheet;//工作表Rangerange;//Excel中针对单元格的操作都应先获取其对应的Range对象Fontfont;Rangecols;/*COleVariant类为VARIANT数据类型的包装,在自动化程序中,通常都使用VARIANT数据类型进行参数传递。故下列程序中,函数参数都是通过COleVariant类来转换了的。*///covOptional可选参数的VARIANT类型COleVariantcovOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);if(!ap
5、p.CreateDispatch("Excel.Application")){this->MessageBox("无法创建Excel应用!");return;}//获取工作薄集合books=app.GetWorkbooks();//添加一个工作薄book=books.Add(covOptional);//获取工作表集合sheets=book.GetSheets();//获取第一个工作表sheet=sheets.GetItem(COleVariant((short)1));//选择工作表中A1:A1单元格区域range=sheet.GetRange(COleVa
6、riant("A1"),COleVariant("A1"));//设置A1=HELLOEXCEL!"range.SetValue(COleVariant("HELLOEXCEL!"));//调整格式,设置粗体font=range.GetFont();font.SetBold(COleVariant((short)TRUE));//选择A2单元格,插入一个公式"=RAND()*",并设置A2数字格式为货币形式range=sheet.GetRange(COleVariant("A2"),COleVariant("A2"));range.SetFormula(COl
7、eVariant("=RAND()*"));range.SetNumberFormat(COleVariant("$0.00"));//选择A:A列,设置宽度为自动适应cols=range.GetEntireColumn();cols.AutoFit();//显示Excel表格,并设置状态为用户可控制app.SetVisible(TRUE);app.SetUserControl(TRUE);2.打开一个已有的excel表格实例CStringstrPath;strPath+="C:\template.xlt";//模板的路径CFileFindfilefind;
8、if(!filefind.FindFi
此文档下载收益归作者所有