vc++使用mfc操作excel文件创建+编辑+保存资料

上传人:E**** 文档编号:94907568 上传时间:2019-08-13 格式:DOC 页数:6 大小:249KB
返回 下载 相关 举报
vc++使用mfc操作excel文件创建+编辑+保存资料_第1页
第1页 / 共6页
vc++使用mfc操作excel文件创建+编辑+保存资料_第2页
第2页 / 共6页
vc++使用mfc操作excel文件创建+编辑+保存资料_第3页
第3页 / 共6页
vc++使用mfc操作excel文件创建+编辑+保存资料_第4页
第4页 / 共6页
vc++使用mfc操作excel文件创建+编辑+保存资料_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《vc++使用mfc操作excel文件创建+编辑+保存资料》由会员分享,可在线阅读,更多相关《vc++使用mfc操作excel文件创建+编辑+保存资料(6页珍藏版)》请在金锄头文库上搜索。

1、使用MFC操作EXCEL文件 本文档适用于: Microsoft Foundation Classes (MFC), Microsoft Visual C+, 32-bit Editions, version 6.0 以上 Microsoft OLE 库 第一步:建立一个自动化工程1. 启动VC 6.0,打开新建对话框,新建一个MFC AppWizard(exe)工程,这里工程明设置为TestExcel。2. 进入MFC 应用程序向导,选择 基本对话框,直接点击完成,工程文件结构如下图: 3. 打开MFC ClassWizard窗口(查看建立类向导),选择Automation,单击Add Cl

2、ass按钮,选择From a type library.,弹出文件选择对话框,之后定位到Microsoft Office的安装目录(通常为C:Program FilesMicrosoft OfficeOffice),选择EXCEL9.OLB注意,确定后,弹出Confirm Classes窗口,选择列表中的所有类,单击OK按钮。 注意 文件名EXCEL9.OLB,因安装的Office版本不同而有所差异,EXCEL9.OLB对应的是Microsoft Office 2000,微软命名方式为Excel+数字的形式,Office版本越高,数字越大。/注意,Excel003的文件是:C:Program

3、FilesMicrosoft OfficeOFFICE11Excel.exe4. 返回编辑器,查看工程文件,可发现多了EXCEL9.H及EXCEL9.CPP两个文件。5. 打开stdafx.h头文件确保包含如下头文件: #include #include excel9.h6. 打开TestExcel.cpp文件,修改CTestExcelApp:InitInstance(),加入如下代码: BOOL CTestExcelApp:InitInstance() if( !AfxOleInit() ) AfxMessageBox(初始化Ole出错!); return FALSE; AfxEnableC

4、ontrolContainer(); . . return FALSE;为保证编译时不产生重复定义错误,打开excel9.h文件,在文件开始位置加入如下代码: #if !defined _HEAD_FILE_EXCEL9_ #define _HEAD_FILE_EXCEL9_ 相应的,在文件末尾加入: #endif到此,OLE自动化工程建立完成。按下F7,看是否能通过编译。注意:编译时可能缺少DLL文件,如mfc42d.dll、msvcrtd.dll、mfco42d.dll,下载后放入C:WINDOWSsystem32文件夹 第二步:操作EXCEL文件1. 选择ResourceView工作区,

5、打开IDD_TESTEXCEL_DIALOG,在对话框中添加一个按钮控件Button1,双击它,生成一个Button1 Click事件的处理函数:void CTestExcelDlg:OnButton1() / TODO: Add your control notification handler code here 2. 在OnButton1()函数中,添加代码:void CTestExcelDlg:OnButton1() / TODO: Add your control notification handler code here _Application app; Workbooks b

6、ooks; _Workbook book; Worksheets sheets; _Worksheet sheet; Range range; Font font; Range cols; COleVariant covOptional(long)DISP_E_PARAMNOTFOUND, VT_ERROR); if( !app.CreateDispatch(Excel.Application) ) this-MessageBox(无法创建Excel应用!); return; books=app.GetWorkbooks(); book=books.Add(covOptional); shee

7、ts=book.GetSheets(); sheet=sheets.GetItem(COleVariant(short)1); range=sheet.GetRange(COleVariant(A1),COleVariant(A1); range.SetValue(COleVariant(HELLO EXCEL!);/Excel2003函数为SetValue font=range.GetFont(); font.SetBold(COleVariant(short)TRUE); range=sheet.GetRange(COleVariant(A2),COleVariant(A2); range

8、.SetFormula(COleVariant(=RAND()*100000); range.SetNumberFormat(COleVariant($0.00); cols=range.GetEntireColumn(); cols.AutoFit(); app.SetVisible(TRUE); app.SetUserControl(TRUE);3. 按下Ctrl+F5,执行程序。按下Button1,将会弹出Excel窗口:4. 到此,即完成了我们的示例程序,下面将对程序进行详细的说明,如果大家有过使用Visual Basic操作Excel程序的经验,则应该能看懂下面程序:void CTe

9、stExcelDlg:OnButton1() / TODO: Add your control notification handler code here /* 先创建一个_Application类,用_Application来创建一个Excel应用程序接口。 Excel接口类中层次如下所示: -_Application -Workbooks 工作薄集合 -_Workbook 工作薄 -Worksheets 工作表集合 -_Worksheet 工作表 -Range单元格区域 故要操作表,必须先逐步获取WorkbooksWorkbook Worksheets Worksheet Range *

10、/ _Application app; Workbooks books; _Workbook book; Worksheets sheets; _Worksheet sheet; Range range; /Excel中针对单元格的操作都应先获取其对应的Range对象 Font font; Range cols; /* COleVariant类为VARIANT数据类型的包装,在自动化程序中,通常都使用VARIANT数据类型进行参数传递。故下列程序中,函数参数都是通过COleVariant类来转换了的。 */ /covOptional 可选参数的VARIANT类型 COleVariant cov

11、Optional(long)DISP_E_PARAMNOTFOUND, VT_ERROR); if( !app.CreateDispatch(Excel.Application) ) this-MessageBox(无法创建Excel应用!); return; /获取工作薄集合 books=app.GetWorkbooks(); /添加一个工作薄 book=books.Add(covOptional); /获取工作表集合 sheets=book.GetSheets(); /获取第一个工作表 sheet=sheets.GetItem(COleVariant(short)1); /选择工作表中A1

12、:A1单元格区域 range=sheet.GetRange(COleVariant(A1),COleVariant(A1); /设置A1=HELLO EXCEL! range.SetValue(COleVariant(HELLO EXCEL!); /调整格式,设置粗体 font=range.GetFont(); font.SetBold(COleVariant(short)TRUE); /选择A2单元格,插入一个公式=RAND()*100000,并设置A2数字格式为货币形式 range=sheet.GetRange(COleVariant(A2),COleVariant(A2); range.

13、SetFormula(COleVariant(=RAND()*100000); range.SetNumberFormat(COleVariant($0.00); /选择A:A列,设置宽度为自动适应 cols=range.GetEntireColumn(); cols.AutoFit(); /显示Excel表格,并设置状态为用户可控制 app.SetVisible(TRUE); app.SetUserControl(TRUE);5. 如何自动保存我们生成的Excel文件?通过Workbook对象的SaveAs方法即可实现: book.SaveAs(COleVariant(C:a.xls),co

14、vOptional, covOptional,covOptional, covOptional,covOptional,(long)0,covOptional,covOptional,covOptional, covOptional);/注意Excel2003的SaveAs函数参数不同,代码应写为:/*void _Workbook:SaveAs(const VARIANT& Filename, 1const VARIANT& FileFormat, const VARIANT& Password, const VARIANT& WriteResPassword, 3const VARIANT& ReadOnlyRecommended, const VARIANT& CreateBackup, long AccessMode, 3const VARIANT& ConflictResolution, 1const VARIANT& AddToMru, const VARIANT& TextCodepage, 2const

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号