OLE
OLE开发是与EXCEL相关的开发, 一般只应用于对excel格式有特别要求的场所。OLE实际上是类EXCEL中VBA的一种写法。有一种简单的方法,就是你可以在EXCEL中把要实现的动作录制成宏,然后根据宏的代码把它改成OLE。 OLE同时也支持直接调用EXCEL宏程序,前提是在没有禁宏的情况下。
实际应用中,我们比较常用第一种方法。首先介绍一下宏的录制:
从视图里面找到录制宏
开始宏名,点击按钮确定, 就开始录制了EXCEL操作了
暂停宏操作
查看宏,点击按钮编辑
进入宏编辑页面
下面我们简单介绍一下OLE的一些常用语法:
1. 引用模块池:OLE开发,必须引用OLE2的模块池。
即:INCLUDE OLE2INCL.
2. OLE对象变量定义:参考对象OLE2_OBJECT,如下:
DATA: GS_EXCEL TYPE OLE2_OBJECT.
3. 创建EXCEL应用程序
CREATE OBJECT GS_EXCEL 'EXCEL.APPLICATION'.
4. 获取对象属性:GET PROPERTY
获取EXECL工作簿属性如下:
GET PROPERTY OF GS_EXCEL 'Workbooks' = GS_WBOOKLIST . 说明:只有获取到对象属性,才能设置对应的属性值。
5. 设置对象属性值:SET PROPERTY
设置EXCEL可见性如下:
SET PROPERTY OF GS_EXCEL 'Visible' = 1 .
6. 通过调用不同对象的方法执行操作(常用对象方法)
6.1 添加EXCEL Sheet工作簿如下:
CALL METHOD OF GS_WBOOKLIST 'Add' = GS_WBOOK .
6.2 定位某个单元格如下:
CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1 EXPORTING
#1 = 1 (#1为行坐标) #2 = 2. (#2为列坐标)
6.3 根据两个单元格坐标获取区域如下:
CALL METHOD OF GS_EXCEL 'Range' = GS_CELLS EXPORTING
#1 = GS_CELL1 (#1为单元格1坐标) #2 = GS_CELL2. (#2为单元格2坐标)
6.4 选中区域如下:
CALL METHOD OF GS_CELLS 'Select' .
6.5 执行单元格合并如下:
CALL METHOD OF GS_CELLS 'Merge' .
6.6 定位某个单元格并对单元格赋值如下:
CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1 EXPORTING #1 = 1 #2 = 2.
SET PROPERTY OF GS_CELL1 'Value' = '销售订单行成本与净值'
6.7 设置字体格式如下:
GET PROPERTY OF GS_CELL1 'Font' = GS_FONT .
.
SET PROPERTY OF GS_FONT 'Size' = 20 .(设置字体大小) SET PROPERTY OF GS_FONT 'Underline' = 2 .(设置字体下划线) SET PROPERTY OF GS_FONT 'Bold' = 1 .(设置粗体)
单元格位置)
6.8 保存并关闭EXECL(自动保存)
GET PROPERTY OF GS_EXCEL 'ActiveWorkbook' = GS_WBOOK. CONCATENATE SY-DATUM '-' SY-UZEIT INTO GV_BOOK_NAME.
call method of GS_WBOOK 'SAVEAS' EXPORTING
#1 = GV_BOOK_NAME #2 = 1.
call method of GS_WBOOK 'CLOSE'.
call method of GS_EXCEL 'QUIT'.
以上主要介绍了OLE开发中用到的一些主要语法,具体更多的应用需要在实际中慢慢掌握。以
SET PROPERTY OF GS_CELL1 'HorizontalAlignment' = -4108 .(设置字体
下为OLE开发的两个例子作为参考:
TEST1.txt
TEST2.txt
7. DOI是OLE的替代技术, 完全用类实现。特点是,你不用再去记那些繁琐的VBA语言了,DOI都
给你包装成类的方法了。同时作为一个控件,已经集成在了SAP的GUI中了,你就可以在SAP的屏幕中写Office的东西了,不用再跳出一个窗口来了,减少一些误操作。当然DOI也是支持调用EXCEL宏程序
的,前提是宏没有被禁。下面就不一一做介绍了, 详情请参考代码:
TEST3.txt
因篇幅问题不能全部显示,请点此查看更多更全内容