转自 http://www.cnblogs.com/eric0701/p/5213694.html
SAP EXCEL OLE常用方法和属性 附加网上找到的比较好的源代码示例一份

1.ole中如何保存和退出。

call method of sheetname 'saveas'

exporting

#1 = filepath

#2 =1.

call method of applicationname 'quit'.

-------------------------------------------------------------------------

2.给sheet重命名。

call method of sheetname 'name' = 'sheetname'.

-------------------------------------------------------------------------

3.创建application.

call method of XXX 'excel.application'.

-------------------------------------------------------------------------

4.设置XXX的显示模式。

set property of XXX 'visible' = 1.前台运行。为0时表示为后台运行。

-------------------------------------------------------------------------

5.创建workbook.

CALL METHOD OF EXCEL 'WORKBOOKS' = WORKBOOK .

call method of workbook 'ADD'.

-------------------------------------------------------------------------

6.在一个workbook中添加一个worksheet.

CALL METHOD OF applicationname 'sheets' =worksheet.

call method of worksheet 'Add' .

-------------------------------------------------------------------------

7.给单元格赋值。

CaLL METHOD OF EXCEL 'CELLS' = CELL

EXPORTING

#1 = 2

#2 = 2.

Set PROPERTY OF CELL 'value'=  xxxx.

-------------------------------------------------------------------------

8.指定要被操作的sheet.

CALL METHOD OF applicationname 'Worksheets' =SHEET

EXPORTING

#1 = 'sheet3'.  这里sheet3为要操作的sheet的名字。

call method of sheet 'Activate '.

-------------------------------------------------------------------------

9.指定操作的单元格的范围。

CALL METHOD OF applicationname 'Range' = range

EXPORTING

#1 = 'B2'

#2 = 'c2'.

-------------------------------------------------------------------------

10. 如何操作范围内的单元格。

call method of range 'select '.   range也为已经定义好的ole2_object.

Set PROPERTY OF range 'MergeCells' = 0 . 合并单元格,0时不合并,1则合并。与前面一起使用

Set PROPERTY OF range  'HorizontalAlignment' = 10 .

Set PROPERTY OF range  'VerticalAlignment' = -4108  .

-------------------------------------------------------------------------

11.单元格内部属性的操作.

call method of cell 'INTERIOR' = int.

set property of int 'ColorIndex' = color. 颜色

set property of int 'Pattern' = pattern.

-------------------------------------------------------------------------

12.单元格内字体的操作.

call method of CELL 'FONT' = font.

set property of font 'BOLD' = bold.

set property of font 'SIZE' = size.

-------------------------------------------------------------------------

13.边框的操作.

call method of CELL 'BORDERS' = BORDERS

EXPORTING

#1 = '1'. 1-left 2-right 3-top 4-bottom

set property of borders 'Linestyle' = plinestyle .

set property of borders 'Weight' = pweight .

free object borders.

在此之前应该指定range.

-------------------------------------------------------------------------

14.复制与粘贴.

call method of sheet 'copy'.

call method of sheet 'paste'.

-------------------------------------------------------------------------

15.一点注意。

在操作sheet时,默认为上次操作的sheet.如果想更换,参考8。

-------------------------------------------------------------------------

16。一个问题。有时输入数据如111111111111111111,会显示为1E+17。

解决办法:

CALL METHOD OF h_excel 'COLUMNS' = columnObj

EXPORTING

#1 = 6.  "the column number

SET PROPERTY OF columnObj 'ColumnWidth' = 10.

SET PROPERTY OF columnObj 'NumberFormat' = '@'.

-------------------------------------------------------------------------

17。打开一个workbook.

call METHOD OF workbook 'Open' EXPORTING #1 =filename+path.

-------------------------------------------------------------------------

18. 所有的操作方法都可以在sell----表 oleload 中查询到。

-------------------------------------------------------------------------

19. 执行宏。

CALL METHOD OF EXCEL 'RUN' EXPORTING #1 ='ZMACRO2'.

-------------------------------------------------------------------------

20。清除range 内容

CALL METHOD OF EXCEL 'Range' = RANGE

EXPORTING

#1 = tar_cell

#2 = tar_cell.

call METHOD of RANGE 'ClearContents'.

-------------------------------------------------------------------------

21 合并单元格

CALL METHOD OF EXCEL 'Range' = RANGE

EXPORTING

#1 = sor_cell

#2 = tar_cell.

SET PROPERTY OF RANGE 'MergeCells' = 1.

-------------------------------------------------------------------------

22。缩小字体填充

SET PROPERTY OF range 'ShrinkToFit' = 0 .

note: 为0时取消缩小字体填充,为1时设置缩小字体填充。

-------------------------------------------------------------------------

note:

1.与ole相关的关键字存储在表oleload中。

2.如果有些ole方法不熟悉,可以利用vba录制宏来寻找相关的关键字。

-------------------------------------------------------------------------

-------------------------------------------------------------------------

OLE示例:可直接运行

*----------------------------------------------------------------------*

* Program Name: Z_KEVIN_OLE

* Project     : N/A

* Author      : Kevin.Zhang

* Date        : 2007.1.1

* Module      : N/A

* Description : Template of Program

*

*

*

* Special features: N/A

*

*

*----------------------------------------------------------------------*

* Modifications:

* Author      Date     Commented as  Description

*-----------  --------  -----------  ----------------------------------*

*

*----------------------------------------------------------------------*

REPORT  Z_KEVIN_OLE.

*$*$----------------------------------------------------------------$*$*

*$*$       Global Types, Data Statements, Ranges, Constants         $*$*

*$*$----------------------------------------------------------------$*$*

*-----------------------------------------------------------------------

*                   Type Pools

*-----------------------------------------------------------------------

*--Include for OLE-enabling definitions

INCLUDE OLE2INCL .

*-----------------------------------------------------------------------

*     Global GUI Controls Variables / Structures

*-----------------------------------------------------------------------

*--Data Definition of OLE

DATA: GS_EXCEL          TYPE OLE2_OBJECT ,

GS_WBOOKLIST      TYPE OLE2_OBJECT ,

GS_APPLICATION    TYPE OLE2_OBJECT ,

GS_WBOOK          TYPE OLE2_OBJECT ,

GS_ACTIVESHEET    TYPE OLE2_OBJECT ,

GS_SHEETS         TYPE OLE2_OBJECT ,

GS_NEWSHEET       TYPE OLE2_OBJECT ,

GS_CELL1          TYPE OLE2_OBJECT ,

GS_CELL2          TYPE OLE2_OBJECT ,

GS_CELLS          TYPE OLE2_OBJECT ,

GS_RANGE          TYPE OLE2_OBJECT ,

GS_FONT           TYPE OLE2_OBJECT ,

GS_INTERIOR       TYPE OLE2_OBJECT ,

GS_COLUMNS        TYPE OLE2_OBJECT ,

GS_CHARTS         TYPE OLE2_OBJECT ,

GS_CHART          TYPE OLE2_OBJECT ,

GS_CHARTTITLE     TYPE OLE2_OBJECT ,

GS_CHARTTITLECHAR TYPE OLE2_OBJECT ,

GS_CHARTOBJECTS   TYPE OLE2_OBJECT .

DATA GV_SHEET_NAME(20) TYPE C .

DATA GV_OUTER_INDEX LIKE SY-INDEX .

DATA GV_INTEX(2) TYPE C .

DATA GV_LINE_CNTR TYPE I . "line counter

DATA GV_LINNO TYPE I . "line number

DATA GV_COLNO TYPE I . "column number

DATA GV_VALUE TYPE I . "data

*$*$----------------------------------------------------------------$*$*

*$*$                      Selection Screen                          $*$*

*$*$----------------------------------------------------------------$*$*

*-----------------------------------------------------------------------

*                   Selection Screen

*-----------------------------------------------------------------------

PARAMETERS: P_SHEETS TYPE I .

*$*$----------------------------------------------------------------$*$*

*$*$                          Main Program                          $*$*

*$*$----------------------------------------------------------------$*$*

*--------- START-OF-SELECTION ----------

START-OF-SELECTION .

DO P_SHEETS TIMES .

*--Forming sheet name

GV_INTEX = SY-INDEX .

GV_OUTER_INDEX = SY-INDEX .

CONCATENATE 'Excel Sheet #' GV_INTEX INTO GV_SHEET_NAME .

*--For the first loop, Excel is initiated and one new sheet is added

IF SY-INDEX = 1 .

CREATE OBJECT GS_EXCEL 'EXCEL.APPLICATION' .

SET PROPERTY OF GS_EXCEL 'Visible' = 1 .

GET PROPERTY OF GS_EXCEL 'Workbooks' = GS_WBOOKLIST .

GET PROPERTY OF GS_WBOOKLIST 'Application' = GS_APPLICATION .

SET PROPERTY OF GS_APPLICATION 'SheetsInNewWorkbook' = 1 .

CALL METHOD OF GS_WBOOKLIST 'Add' = GS_WBOOK .

GET PROPERTY OF GS_APPLICATION 'ActiveSheet' = GS_ACTIVESHEET .

SET PROPERTY OF GS_ACTIVESHEET 'Name' = GV_SHEET_NAME .

*--For the rest of loops, other sheets are added

ELSE .

GET PROPERTY OF GS_WBOOK 'Sheets' = GS_SHEETS .

CALL METHOD OF GS_SHEETS 'Add' = GS_NEWSHEET .

SET PROPERTY OF GS_NEWSHEET 'Name' = GV_SHEET_NAME .

ENDIF .

GV_LINE_CNTR = 1 . "line counter

*--Title

*--Selecting cell area to be merged.

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1

EXPORTING

#1 = 1

#2 = 1.

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL2

EXPORTING

#1 = 1

#2 = 4.

CALL METHOD OF GS_EXCEL 'Range' = GS_CELLS

EXPORTING

#1 = GS_CELL1

#2 = GS_CELL2.

CALL METHOD OF GS_CELLS 'Select' .

*--Merging

CALL METHOD OF GS_CELLS 'Merge' .

*--Setting title data

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1

EXPORTING

#1 = GV_LINE_CNTR

#2 = 1.

SET PROPERTY OF GS_CELL1 'Value' = 'TITLE' .

*--Formatting the title

GET PROPERTY OF GS_CELL1 'Font' = GS_FONT .

SET PROPERTY OF GS_FONT 'Underline' = 2 .

SET PROPERTY OF GS_FONT 'Bold' = 1 .

SET PROPERTY OF GS_CELL1 'HorizontalAlignment' = -4108 .

GET PROPERTY OF GS_CELL1 'Interior' = GS_INTERIOR .

SET PROPERTY OF GS_INTERIOR 'ColorIndex' = 15 .

SET PROPERTY OF GS_INTERIOR 'Pattern' = -4124 .

SET PROPERTY OF GS_INTERIOR 'PatternColorIndex' = -4105 .

GV_LINE_CNTR = GV_LINE_CNTR + 1 .

*--Writing some additional data for the title

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1

EXPORTING

#1 = GV_LINE_CNTR

#2 = 1.

SET PROPERTY OF GS_CELL1 'Value' = 'Sheet No' .

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1

EXPORTING

#1 = GV_LINE_CNTR

#2 = 5.

SET PROPERTY OF GS_CELL1 'Value' = ':' .

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1

EXPORTING

#1 = GV_LINE_CNTR

#2 = 6.

SET PROPERTY OF GS_CELL1 'Value' = GV_INTEX .

*--Formatting the area of additional data 1

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1

EXPORTING

#1 = 1

#2 = 1.

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL2

EXPORTING

#1 = GV_LINE_CNTR

#2 = 5.

CALL METHOD OF GS_EXCEL 'Range' = GS_CELLS

EXPORTING

#1 = GS_CELL1

#2 = GS_CELL2.

CALL METHOD OF GS_CELLS 'Select' .

GET PROPERTY OF GS_CELLS 'Font' = GS_FONT .

SET PROPERTY OF GS_FONT 'Bold' = 1 .

*--Formatting the area of additional data 2

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1

EXPORTING

#1 = 1

#2 = 5.

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL2

EXPORTING

#1 = GV_LINE_CNTR

#2 = 5.

CALL METHOD OF GS_EXCEL 'Range' = GS_CELLS

EXPORTING

#1 = GS_CELL1

#2 = GS_CELL2.

CALL METHOD OF GS_CELLS 'Select' .

GET PROPERTY OF GS_CELLS 'Columns' = GS_COLUMNS .

CALL METHOD OF GS_COLUMNS 'AutoFit' .

*--Bordering title data area

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1

EXPORTING

#1 = 1

#2 = 1.

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL2

EXPORTING

#1 = GV_LINE_CNTR

#2 = 6.

CALL METHOD OF GS_EXCEL 'Range' = GS_CELLS

EXPORTING

#1 = GS_CELL1

#2 = GS_CELL2.

CALL METHOD OF GS_CELLS 'Select' .

CALL METHOD OF GS_CELLS 'BorderAround'

EXPORTING

#1 = 1 "continuous line

#2 = 4. "thick

*--Putting axis labels

GV_COLNO = 2 .

GV_LINE_CNTR = GV_LINE_CNTR + 5 .

GV_LINNO = GV_LINE_CNTR - 1 .

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1

EXPORTING

#1 = GV_LINNO

#2 = 1.

SET PROPERTY OF GS_CELL1 'Value' = 'X' .

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1

EXPORTING

#1 = GV_LINE_CNTR

#2 = 1.

SET PROPERTY OF GS_CELL1 'Value' = 'Y' .

*--Generating some data

DO 3 TIMES .

GV_VALUE = GV_OUTER_INDEX * SY-INDEX * 10 .

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1

EXPORTING

#1 = GV_LINNO

#2 = GV_COLNO.

SET PROPERTY OF GS_CELL1 'Value' = SY-INDEX .

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1

EXPORTING

#1 = GV_LINE_CNTR

#2 = GV_COLNO.

SET PROPERTY OF GS_CELL1 'Value' = GV_VALUE .

GV_COLNO = GV_COLNO + 1 .

ENDDO .

*--Source data area

GV_COLNO = GV_COLNO - 1 .

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1

EXPORTING

#1 = GV_LINNO

#2 = 1.

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL2

EXPORTING

#1 = GV_LINE_CNTR

#2 = GV_COLNO.

CALL METHOD OF GS_EXCEL 'Range' = GS_CELLS

EXPORTING

#1 = GS_CELL1

#2 = GS_CELL2.

CALL METHOD OF GS_CELLS 'Select' .

GET PROPERTY OF GS_APPLICATION 'Charts' = GS_CHARTS .

CALL METHOD OF GS_CHARTS 'Add' = GS_CHART .

CALL METHOD OF GS_CHART 'Activate' .

SET PROPERTY OF GS_CHART 'ChartType' = '51' . "Vertical bar graph

CALL METHOD OF GS_CHART 'SetSourceData'

EXPORTING

#1 = GS_CELLS

#2 = 1.

SET PROPERTY OF GS_CHART 'HasTitle' = 1 .

GET PROPERTY OF GS_CHART 'ChartTitle' = GS_CHARTTITLE .

GET PROPERTY OF GS_CHARTTITLE 'Characters' = GS_CHARTTITLECHAR .

SET PROPERTY OF GS_CHARTTITLECHAR 'Text' = 'Sample Graph' .

*--Locate the chart onto the current worksheet

*--Activate current sheet

CALL METHOD OF GS_EXCEL 'WorkSheets' = GS_ACTIVESHEET

EXPORTING

#1 = GV_SHEET_NAME.

CALL METHOD OF GS_ACTIVESHEET 'Activate' .

CALL METHOD OF GS_CHART 'Location'

EXPORTING

#1 = 2

#2 = GV_SHEET_NAME.

*--Reposition the chart on the worksheet (cut&paste)

CALL METHOD OF GS_ACTIVESHEET 'ChartObjects' = GS_CHARTOBJECTS .

CALL METHOD OF GS_CHARTOBJECTS 'Select' .

CALL METHOD OF GS_CHARTOBJECTS 'Cut' .

*--Select new area

GV_LINE_CNTR = GV_LINE_CNTR + 2 .

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1

EXPORTING

#1 = GV_LINE_CNTR

#2 = 1.

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL2

EXPORTING

#1 = GV_LINE_CNTR

#2 = 1.

CALL METHOD OF GS_EXCEL 'Range' = GS_CELLS

EXPORTING

#1 = GS_CELL1

#2 = GS_CELL2.

CALL METHOD OF GS_CELLS 'Select' .

CALL METHOD OF GS_ACTIVESHEET 'Paste' .

ENDDO.

*--Deallocating memory

FREE: GS_EXCEL, GS_WBOOKLIST, GS_APPLICATION, GS_WBOOK,

GS_ACTIVESHEET,GS_SHEETS, GS_NEWSHEET, GS_CELL1,

GS_CELL2, GS_CELLS, GS_RANGE, GS_FONT, GS_INTERIOR,

GS_COLUMNS, GS_CHARTS, GS_CHART, GS_CHARTTITLE,

GS_CHARTTITLECHAR, GS_CHARTOBJECTS .

ABAP OLE常用方法和属性的更多相关文章

  1. ABAP excel操作 OLE 常用方法和属性

    转自 http://bstone.blog.163.com/blog/static/176820446201172834149199/#userconsent# OLE 常用方法和属性 1.ole中如 ...

  2. SAP EXCEL OLE常用方法和属性

    1.创建application: CREATE OBJECT excel 'EXCEL.APPLICATION'. 2.设置显示模式,为1前台运行,为0时表示为后台运行. . 3.设置为不弹消息框(在 ...

  3. Javascript - ExtJs - 常用方法和属性

    常用方法和属性(Common methods and attributes) ExtJs中的对象 Ext.Component Ext组件对象,表示一个可渲染的组件. Ext.dom.Element E ...

  4. TStringList 常用方法与属性

    /TStringList 常用方法与属性 :varList: TStringList;i: Integer;begin List := TStringList.Create;List.Add('Str ...

  5. Jquery 常用方法 及属性

    Jquery   常用方法 及属性 jQuery 事件 鼠标事件 键盘事件 表单事件 文档/窗口事件 click keypress submit load dblclick keydown chang ...

  6. JavaScript数组方法速查,32个数组的常用方法和属性

    JavaScript数组方法速查手册极简版 http://30ke.cn/doc/js-array-method JavaScript数组方法速查手册极简版中共收了32个数组的常用方法和属性,并根据方 ...

  7. java file类的常用方法和属性

    1 常用方法       a.createNewFile方法 public boolean createNewFile() throws IOException 该方法的作用是创建指定的文件.该方法只 ...

  8. iOS UIView常用方法和属性

    UIView常用方法 addSubView: // 添加子视图 insertSubview: atIndex // 视图插入到指定索引位置 insertSubview:aboveSubview: // ...

  9. JavaScript String常用方法和属性

    在JavaScript中,字符串是不可变的,如果使用索引对字符串进行修改浏览器不会报错,但也没有任何效果.JavaScript提供的这些方法不会修改原有字符串的内容,而是返回一个新的期望的字符串. 一 ...

随机推荐

  1. Toast问题记录:This Toast was not created with Toast.makeText()

    最近使用自己封装的Toast时,遇到一个问题 java.lang.RuntimeException: This Toast was not created with Toast.makeText() ...

  2. 微信小程序之微信支付C#后台(统一下单)

    一.微信小程序支付 1.微信小程序端请求支付接口 商户在小程序中先调用该接口在微信支付服务后台生成预支付交易单,返回正确的预支付交易后调起支付.具体可以查看接口示例. 接口传入参数示例: <xm ...

  3. React-Native Navigator 过渡动画卡顿的解决方案

    在RN0.44版本之前,路由导航跳转几乎是使用的是Navigator组件,在0.44版本以后就不推荐使用了,官方推荐的是react-navigation,当然还是可以在废弃的库中找到: import ...

  4. SD-WAN用户实践分享:老网工趟出的SD-WAN成功路

    在这个离开“人大物云”(人-人工智能.大-大数据.物-物联网.云-云计算)话题都张不开嘴的年代,在这个在咖啡店谈生意都不好意思低于1个亿的年代,反思我的老本行——网络,正在以一种全新的.更加重要的姿态 ...

  5. HAXM 6.0.5显示不兼容Windows

    HAXM 6.0.5显示不兼容Windows 最近更新Android后,用户会在Android Manager中发现,以前可以安装Intel x86模拟器现在不能安装了.提示错误信息如下:intel  ...

  6. Xamarin.Forms的基本页面和基本视图

    Xamarin.Forms的基本页面和基本视图   在Xamarin.Forms中,每个App的界面都是一个页面Page.页面的种类有很多种.其中,最常见的页面就是内容页面ContentPage.项目 ...

  7. 第三章 poj 1064——关于带精度的二分法

    /* 题意:给定n个实数l[i],给定一个k 问:求最大的ans,使得sum l[i]/ans i=1 to n >=k,且ans最大*/ #include <iostream> # ...

  8. 笔记-迎难而上之Java基础进阶6

    import java.io.*; public class InputStreamDemo{ public static void main(String[] args) throws IOExce ...

  9. CEF General Usage(CEF3预览)

    CEF General Usage(CEF3预览) 介绍 CEF全称Chromium Embedded Framework,是一个基于Google Chromium 的开源项目.Google Chro ...

  10. javascript --- 对象之间的继承

    了解这一章之前,先把我们之前讲到的以构造函数创建对象为前提的继承抛到一边. 首先,我们先用一个var o = {}创建一个没有任何属性的空对象作为我们的‘画板’,然互在逐步向这个画板里添加属性,和方法 ...