VC操作Excel
来源:互联网 发布:照片排版软件 编辑:程序博客网 时间:2024/06/05 16:33
基于MFC的OLE编程方法一、Excel的对象模型 Application:代表应用程序本身。即Excel应用程序 Workbooks:是Workbook 的集合,代表了工作薄。 Worksheets:是Worksheet的集合,是Workbook的子对象。 Range:是Worksheet的子对象,可以理解为Sheet中一定范围的单元格。 Shapes:是Worksheet的子对象,用于存储图片等信息的单元格。二、VC操作Excel的初始化过程1、导入Excel库文件 首先打开Class Wizard,点击"Add class"按钮下的"From a type Library"导入 office安装目录下的"excel.exe" (适用于Excel2003),然后选择需要用的一些类,比如_Application, _Workbook,Workbooks,Worksheets,_Wroksheet,Range,Shapes等。点击确定后,系统会在你的程序目录下生成excel.h和excel.cpp两个文件,在要使用这些导入的类时加入#include "Excel.h"即可。2、初始化Application 首先, 初始化COM组件 if(!AfxOleInit()) { AfxMessageBox("无法初始化COM的动态连接库"); } 然后,创建Excel 服务器(启动Excel) if (!app.CreateDispatch("Excel.Application")) { AfxMessageBox("无法启动Excel服务器"); } 定义app的全局或成员变量 _Application app; 3、设置Excel的状态 app.SetVisible( TRUE ); //使Excel可见 app.SetUserControl( TRUE ); //允许其他用户控制Excel 三、VC对Excel的操作 定义变量 Workbooks books; _Workbook book; Worksheets sheets; _Worksheet sheet; LPDISPATCH lpDisp; Range range; COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);1、打开已有的Excel文件2、新建一个.xls文件,并写入数据 COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); //Get the Workbooks collection so that you can add a new workbook books.AttachDispatch(app.GetWorkbooks()); //得到Workbooks book = books.Add(covOptional); //得到Workbook //Get the Worksheets collection so that you can get the IDispatch for the first Worksheet sheets = book.GetWorksheets(); //得到Worksheets sheet = sheets.GetItem(COleVariant((short)1)); //得到Worksheet //分别向每个单元格添加数据 //Excel2000 用函数SetValue()即可, Excel2003用函数SetValue2() range = sheet.GetRange(COleVariant("A1"), covOptional); //获取A1 Range range.SetValue2( COleVariant("Date")); //添加数据 range = sheet.GetRange(COleVariant("B1"), covOptional); //获取B1 Range range.SetValue2(COleVariant("Order")); //添加数据 range = sheet.GetRange(COleVariant("C1"), covOptional); //获取C1 Range range.SetValue2(COleVariant("Amount")); //添加数据 range = sheet.GetRange(COleVariant("D1"), covOptional); //获取D1 Range range.SetValue2(COleVariant("Tax")); //添加数据3、合并单元格4、向单元格中插入图片(支持BMP、JPG格式,其他没试)5、将已建的.xls文件另存为 COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); book.SaveAs(COleVariant("D:\\3.xls"),covOptional,covOptional,covOptional,covOptional,covOptional,0,covOptional,covOptional,covOptional,covOptional,covOptional); 6、关闭Excel服务COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); book.SetSaved(TRUE); //将Workbook的保存状态设置为已保存,即不让系统提示是否人工保存 range.ReleaseDispatch(); //释放Range对象 sheet.ReleaseDispatch(); //释放Sheet对象 sheets.ReleaseDispatch(); //释放Sheets对象 book.ReleaseDispatch(); //释放Workbook对象 books.ReleaseDispatch(); //释放Workbooks对象 book.Close (covOptional, covOptional,covOptional); //关闭Workbook对象 books.Close(); //关闭Workbooks对象 app.Quit(); //退出_Application app.ReleaseDispatch (); //释放_Application出处:http://blog.csdn.net/handsing/archive/2010/04/08/5461070.aspx
- VC操作EXCEL
- VC操作EXCEL(1)
- vc操作Excel(2)
- VC操作excel表格
- VC操作Excel
- vc操作Excel。
- VC操作Excel(总结)
- VC++操作Excel 2007
- vc对excel操作
- VC++ 操作excel 转
- VC操作EXCEL
- VC操作Excel
- VC++操作Excel对象
- VC对EXCEL操作
- VC操作EXCEL实例
- VC操作Excel文件
- VC操作excel表格
- VC操作Excel
- 破解.net程序 编译和反编译方法
- HTTP协议
- 增删查改常用代码
- OGNL表达式原理
- Linux 的/proc目录
- VC操作Excel
- ASM驱动安装与ASM盘建立
- 点滴编程细节知识
- hdu-A+B Problem Too
- Hibernate映射解析——七种映射关系
- 安装cmake 和opencv并在Qt中使用opencv(linux-pc环境)
- delphi rtti
- Sqlserver 如何修改替换text,ntext类型字段
- Qt 系统找不到指定的路径