




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用OLE操作Excel要在应用程序中控制Excel的运行,首先必须在编制自动化客户程序时包含Comobj.hpp#include Comobj.hppC+ Builder把Excel自动化对象的功能包装在下面的四个Ole Object Class函数中,应用人员可以很方便地进行调用。设置对象属性:voidOlePropertySet(属性名,参数);获得对象属性:VariantOlePropertyGet(属性名,参数);调用对象方法:1) VariantOleFunction(函数名,参数);2) voidOleProcedure(过程名,参数);在程序中可以用宏定义来节省时间:#definePGOlePropertyGet#definePSOlePropertySet#defineFNOleFunction#definePROleProcedure举例:ExcelApp.OlePropertyGet(workbooks).OleFunction(Add);可写为ExcelApp.PG(workbooks).FN(Add);C+ Builder中使用OLE控制Excel2000,必须掌握Excel2000的自动化对象及Microsoft Word Visual Basic帮助文件中的关于Excel的对象、方法和属性。对象是一个Excel元素,属性是对象的一个特性或操作的一个方面,方法是对象可以进行的动作。首先定义以下几个变量:Variant ExcelApp,Workbook1,Sheet1,Range1;1、Excel中常用的对象是:Application,Workbooks,Worksheets等。创建应用对象Variant ExcelApp;ExcelApp = Variant:CreateObject (Excel.Application);或者ExcelApp = CreateOleObject (Excel.Application);创建工作簿对象Variant WorkBook1;WorkBook1 = ExcelApp.PG(ActiveWorkBook);创建工作表对象Variant Sheet1;Sheet1 = WorkBook1.PG(ActiveSheet);创建区域对象Variant Range;Range = Sheet1.PG(Range,A1:A10);或者使用Excel.Exec(PropertyGet(Range)A1:C1).Exec(Procedure(Select);2、常用的属性操作:使Excel程序不可见ExcelApp.PS(Visible, (Variant)false);新建EXCEL文件 新建系统模板的工作簿ExcelApp.PG(workbooks).FN(Add)/默认工作簿ExcelApp.PG(workbooks).FN(Add, 1)/单工作表ExcelApp.PG(workbooks).FN(Add, 2)/图表ExcelApp.PG(workbooks).FN(Add, 3)/宏表ExcelApp.PG(workbooks).FN(Add, 4)/国际通用宏表ExcelApp.PG(workbooks).FN(Add, 5)/与默认的相同ExcelApp.PG(workbooks).FN(Add, 6)/工作簿且只有一个表或者使用ExcelApp的Exec方法Excel.Exec(PropertyGet(Workbooks).Exec(Procedure(Add); 新建自己创建的模板的工作簿ExcelApp.PG(workbooks).FN(Add, C:Tempresult.xlt);打开工作簿ExcelApp.PG(workbooks).FN(open, 路径名.xls)保存工作簿WorkBook1.FN(Save);/保存工作簿WorkBook1.FN(SaveAs, 文件名);/工作簿保存为,路径注意用退出EXCELExcelApp.FN (Quit);ExcelApp = Unassigned;或者ExcelApp.Exec(Procedure(Quit);操作工作表 选择选择工作表中第一个工作表Workbook1.PG(Sheets, 1).PR(Select);Sheet1 = Workbook1.PG(ActiveSheet); 重命名工作表Sheet1.PS(Name, Sheet的新名字); 当前工作簿中的工作表总数int nSheetCount=Workbook1.PG(Sheets).PG(Count);操作行和列 获取当前工作表中有多少行和多少列:Sheet1.PG(UsedRange).PG(Columns).PG(Count); /列数Sheet1.PG(UsedRange).PG(Rows).PG(Count);/行数 设置列宽ExcelApp.PG(Columns, 1).PS(ColumnWidth, 22);或者Range = ExcelApp.PG(Cells, 1, 3);Range.PS(ColumnWidth, 22); 设置行高ExcelApp.PG(Rows, 2).PS(RowHeight, 25);或者Range = ExcelApp.PG(Cells, 2, 1);Range.PS(RowHeight, 25); 在工作表最前面插入一行Sheet1.PG(Rows, 1).PR(Insert); 删除一行ExcelApp.PG(Rows, 2).PR(Delete); /将第2行删除/ 本文作者:ccrun ,如转载请保证本文档的完整性,并注明出处。/ 欢迎光临 C+ Builder 研究 / 摘自:/doc/go.asp?id=529操作单元格 设置单元格字体Sheet1.PG(Cells, 1, 1).PG(Font).PS(Name, 隶书); /字体Sheet1.PG(Cells, 2, 3).PG(Font).PS(size, 28);/大小 设置所选区域字体Range.PG(Cells).PG(Font).PS(Size, 28);/ 本文转自 C+Builder研究 - /article.asp?i=529&d=0iezy5Range.PG(Cells).PG(Font).PS(Color, RGB(0, 0, 255);其中参数的设置:FontName : 隶书/字体名称Size : 12/字体大小Color : RGB(*,*,*)/颜色Underline : true/false/下划线Italic: true/false/斜体 设置单元格格式为小数百分比Sheet1.PG(Cells, 1, 1).PS(NumberFormatLocal, 0.00%); 设定单元格的垂直对齐方式Range = ExcelApp.PG(Cells, 3, 4);/ 1=靠上 2=居中 3=靠下对齐 4=两端对齐 5=分散对齐Range.PS(VerticalAlignment, 2); 设定单元格的文本为自动换行Range = ExcelApp.PG(Cells, 3, 4);Range.PS(WrapText, true);单元格的合并 Range = Sheet1.PG(Range, A1:A2);/A1和A2单元格合并String strRange = A + IntToStr(j) + : + C + IntToStr(j); /比如:A1:C5Range1=Sheet1.PG(Range, strRange.c_str(); /可以用变量控制单元格合并Range1.FN(Merge, false);读写单元格 指定单元格赋值String strValue = abcdefg;Sheet1.PG(Cells, 3, 6).PS(Value, strValue.c_str();Sheet1.PG(Cells, j, 1).PS(Value, 总记录: + String(j-6);或者使用Excel.Exec(PropertyGet(Cells)13).Exec(PropertySet(Value)15); 所选区域单元格赋值Range.PG(Cells).PS(Value, 10); 所选区域行赋值Range.PG(Rows,1).PS(Value, 1234); 工作表列赋值Sheet1.PG(Columns,1).PS(Value, 1234); 读取取值语句:String strValue = Sheet1.PG(Cells, 3, 5).PG(Value);窗口属性 显示属性ExcelApp.PS(Windowstate, 3);/最大化显示1-xlNormal/正常显示2-xlMinimized/最小化显示3-xlMaximized/最大化显示 状态栏属性ExcelApp.PS(StatusBar, 您好,请您稍等。正在查询!);ExcelApp.PS(StatusBar, false);/还原成默认值 标题属性:ExcelApp.PS(Caption, 查询系统);3、操作图表添加图表Variant Chart;Chart = ExcelApp.Exec(PropertyGet(Charts).Exec(Function(Add);ExcelApp.Exec(PropertySet(Visible) true);Chart.Exec(PropertySet(Type) -4100);滚动图表for(int nRotate=5; nRotate = 180; nRotate += 5)Chart.Exec(PropertySet(Rotation) = 0; nRotate -= 5)Chart.Exec(PropertySet(Rotation) nRotate);另外,为保证程序能正常运行,需要在程序中判断目标机器是否安装了Office;tryExcelApp = Variant:CreateObject (Excel.Application);catch(.)ShowMessage(运行Excel出错,请确认安装了Office);return;#include comobj.hpp/-/ 对指定Excel文件中的指定列进行排序/ strExcelFileName : excel文件名/ nCol : 指定的列号/ nSortStyle : 1:升序,2:降序void SortExcelColumn(String strExcelFileName, int nCol, int nSortStyle)Variant vExcelApp, vWorkbook, vRange;vExcelApp = Variant:CreateObject(Excel.Application);vExcelApp.OlePropertySet(Visible, false);vExcelApp.OlePropertyGet(WorkBooks).OleProcedure(Open, strExcelFileName.c_str();vWorkbook = vExcelApp.OlePropertyGet(ActiveWorkbook);vExcelApp.OlePropertyGet(Columns, nCol).OleProcedure(Select);vExcelApp.OlePropertyGet(ActiveSheet).OlePropertyGet(Cells, 1, nCol).OleProcedure(Select);vRange =vExcelApp.OlePropertyGet(Selection);vRange.Exec(Function(Sort)vExcelApp.OlePropertyGet(Selection)nSortStyle);vWorkbook
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大专基础会计试题及答案
- 基础试题及答案大全
- 城市旧供水管网改造工程经济效益和社会效益分析报告
- 焊丝生产制造项目规划设计方案
- 普通房屋租赁合同的范文7篇
- 净身出户离婚协议书起草与财产分割执行指导
- 离婚财产分配与债务处理专项协议书
- 住宅小区物业服务权移交及配套设施合同
- 生活垃圾分类收集转运体系建设项目可行性研究报告
- 风电场效能提升改造项目可行性研究报告
- 超早期脑梗死的CT影像表现及诊断课件
- 拉西地平原料制药课程设计说明书
- 小学体育-小学二年级《单双脚跳》教学设计学情分析教材分析课后反思
- 居室环境的清洁与消毒
- ××领导班子及成员分析研判报告
- GB/T 9124.1-2019钢制管法兰第1部分:PN系列
- GB/T 2518-2008连续热镀锌钢板及钢带
- Frenchay构音障碍评定
- 教育学原理课后答案主编项贤明
- 建筑装饰施工技术-轻质隔墙工程施工课件(-)
- 语言领域核心经验《学前儿童语言学习与发展核心经验》
评论
0/150
提交评论