OLE-Excel基本操作
1.create object obj
CREATE OBJECT EXCEL 'Excel.Application'.
这个obj通常指能够支持的应用程序
应用程序首先要满足OLE2的标准
同时还要注册到R/3系统
维护的程序信息在table: tole中可以看到
tole有个视图v_tole 可以使用tcode : sole来编辑

2.Workbook
CALL METHOD OF EXCEL 'WORKBOOKS' = BOOKS.
a.读取现有的excel
CALL METHOD OF BOOKS 'Open' EXPORTING #1 = p_file.
b.新建excel
CALL METHOD OF BOOKS 'Add' .
3.Sheets
a.设置sheets的数量
SET PROPERTY OF excel 'SheetsInNewWorkbook' = 3.
b.切换到某个sheet
CALL METHOD OF excel 'Worksheets' = sheet EXPORTING #1 = 1.
CALL METHOD OF sheet 'Activate'.
这个active的方法一定要调用 才能确定使用某一个sheet
c.设定名称
SET PROPERTY OF excel 'Name' = p_sheetname.
4.合并单元格
a.确定范围
CALL METHOD OF excel 'RANGE' = range
EXPORTING #1 = 'A2'
#2 = 'E3' .
b.范围选中
CALL METHOD OF range 'SELECT' .
c.合并单元格
SET PROPERTY OF range 'MERGE' = 1 .
5.删除行
CALL METHOD OF excel 'ROWS' = row
Exporting #1 = 2.
CALL METHOD OF row 'DELETE'.
6.单元格着色
CALL METHOD OF excel 'cells' = cell
EXPORTING
#1 = 1
#2 = 3.
GET PROPERTY OF cell 'Interior' = color.
SET PROPERTY OF color 'ColorIndex' = 35.
PS:
1. GET PROPERTY OF EXCEL 'ACTIVESHEET' = SHEET.
GET PROPERTY OF EXCEL 'ACTIVEWORKBOOK' = BOOKS.
退出时要加上这两句
否则导不出excel
2.关于范围range
使用后要free掉
才能使用下一个范围
3.关于quit 和 free
quit是给OLE Server的
即相当于告诉excel程序退出
free是abap程序里面的object
4.关于使用文件操作等
例如需要指定下载到桌面
和控件相关的automation queue
注意调用cl_gui_cfw=>flush
5.OLE的操作也可以指定no flush
节省server 和 client 的交互
一次性传输所有的OLE操作
附代码:
report z_excel_demo.
type-pools: OLE2 . DATA: excel TYPE ole2_object, " Excel object
books TYPE ole2_object, " list of workbooks
sheet TYPE ole2_object, " workbook
cell TYPE ole2_object, " cell
row TYPE ole2_object, " cell
borders TYPE ole2_object, " cell
color TYPE ole2_object, " cell
range TYPE ole2_object. " cell
data: l_desktop type string. CREATE OBJECT EXCEL 'Excel.Application'. SET PROPERTY OF excel 'Visible' = 0.
SET PROPERTY OF excel 'SheetsInNewWorkbook' = 3. CALL METHOD OF EXCEL 'WORKBOOKS' = BOOKS. CALL METHOD OF BOOKS 'Add' .
* CALL METHOD OF BOOKS 'Open' EXPORTING #1 = p_file. CALL METHOD OF excel 'Worksheets' = sheet EXPORTING #1 = 1.
CALL METHOD OF sheet 'Activate'.
perform filling.
perform addition. CALL METHOD OF excel 'Worksheets' = sheet EXPORTING #1 = 2.
CALL METHOD OF sheet 'Activate'.
perform filling. GET PROPERTY OF EXCEL 'ACTIVESHEET' = SHEET.
GET PROPERTY OF EXCEL 'ACTIVEWORKBOOK' = BOOKS. * "默认导出到桌面 perform get_desktop using l_desktop. CONCATENATE l_desktop '\EXCEL_DEMO' '.xls' INTO l_desktop. call method of BOOKS 'SAVEAS'
EXPORTING
#1 = l_desktop
#2 = 1. call method of books 'CLOSE'.
call method of excel 'QUIT'. FREE OBJECT EXCEL.
message s888(sapaapdocu) with '成功导出模板:' l_desktop. form filling.
PERFORM fill_cell USING :
1 1 'Field1',
1 2 'Field2'. endform. form addition.
"合并单元格
CALL METHOD OF excel 'RANGE' = range EXPORTING #1 = 'A2' #2 = 'E3' . * 删除行
* CALL METHOD OF excel 'ROWS' = row
* Exporting #1 = 2.
* CALL METHOD OF row 'DELETE'. CALL METHOD OF range 'SELECT' . SET PROPERTY OF range 'MERGE' = 1 . free range. CALL METHOD OF excel 'RANGE' = range EXPORTING #1 = 'A5' #2 = 'M5'. CALL METHOD OF range 'Borders' = borders EXPORTING #1 = 8. SET PROPERTY OF borders 'LineStyle' = 1. CALL METHOD OF excel 'cells' = cell EXPORTING #1 = 1 #2 = 3. GET PROPERTY OF cell 'Interior' = color. SET PROPERTY OF color 'ColorIndex' = 35. SET PROPERTY OF cell 'ColumnWidth' = 20.
endform.
*-------------------------------------------------------*
* 默认导出模板到桌面
*-------------------------------------------------------*
form get_desktop using p_desktop type string .
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GET_DESKTOP_DIRECTORY
changing
DESKTOP_DIRECTORY = p_desktop . CALL METHOD CL_GUI_CFW=>UPDATE_VIEW.
endform. FORM fill_cell USING p_i p_j p_val. CALL METHOD OF excel 'CELLS' = cell EXPORTING #1 = p_i #2 = p_j.
SET PROPERTY OF cell 'VALUE' = p_val. ENDFORM.
OLE-Excel基本操作的更多相关文章
- python3 excel基本操作及格式设置
#encoding=utf-8 ''' excel基本操作整理 ''' #openpyxl 版本2.5.4 from openpyxl import * import datetime as dt f ...
- python excel基本操作
#coding=utf-8 ''' excel基本操作 ''' from openpyxl import Workbook wb=Workbook() ws1=wb.create_sheet('sh1 ...
- Excel基本操作1
Excel的基本操作之二,录入及快速填充.不足之处,欢迎补充
- C#操作Excel基本操作
/// using Microsoft.Office.Core; using Microsoft.Office.Interop.Excel; using System.IO; using System ...
- Excel基本操作
一.excel公式下拉 1.选择最长一列excel ,按CTRL+↓移到最后一个单元格,2光标移到下拉公式的那一列,3.再按CTRL+SHIFT+↑,4.再按CTRL+D 二.输入身份证号等长数字 方 ...
- MFC 简单输出EXCEL - (OLE)
三图胜千言: 就是酱紫: //打印领料表 void CKnifeDlgDlg::PrintCurUsedTabel(int order) { // TODO: Add your command han ...
- Qt之excel 操作使用说明
学习背景: 适合熟悉些qt开发,但是不是深入了解的开发者学习.具体实现(qt 5.1版本),office2007 Excel做验证,Win 7(64位),如有讲解有误,欢迎斧正! 一.简单介绍 QAx ...
- [SAP ABAP开发技术总结]OLE
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- Qt-excel文件操作方法
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt-excel文件操作方法 本文地址:http://techieliang.com/ ...
- python之openpyxl模块
一 . Python操作EXCEL库的简介 1.1 Python官方库操作excel Python官方库一般使用xlrd库来读取Excel文件,使用xlwt库来生成Excel文件,使用xlutils库 ...
随机推荐
- 基于html5实现的愤怒的小鸟网页游戏
之前给大家分享一款基于html5 canvas和js实现的水果忍者网页版,今天给大家分享一款基于html5实现的愤怒的小鸟网页游戏.这款游戏适用浏览器:360.FireFox.Chrome.Safar ...
- 基于jQuery实现苹果Dock样式的菜单
爱编程小编之前我们分享过相当数量的jQuery菜单了,今天要给大家带来一款Dock样式的jQuery菜单,用过苹果的朋友都知道,它的Dock菜单非常酷,配合漂亮的图标就更加绚丽了.效果图如下: 在线预 ...
- 代码片段 - Golang 实现简单的 Web 服务器
------------------------------ 下面一段代码,实现了最简单的 Web 服务器: 编译环境: Linux Mint 18 Cinnamon 64-bit Golang 1. ...
- 关于android在Service中弹出Dialog对话框
在创建好AlertDialog类型对象后,要 dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); 同时还 ...
- android stuido 在线安装svn插件,添加版本库无响应
问题:android stuido 中在线安装svn插件,添加版本库无响应. 原因: 由于android stuido 版本较高,在线安装1.6x 版本的svn,添加版本库一直没有响应,最后卡死.. ...
- The Last Practice
Problem Description Tomorrow is contest day, Are you all ready?We have been training for 45 days, an ...
- NSURLConnection 网络超时的那些事(转别人整理的)
NSURLConnection 网络超时的那些事(转别人整理的) 在ios平台上做网络开发最常用的两个类: NSMutableURLRequest *urlRequest = [[NSMutableU ...
- [ASP.Net]TableLayoutPanel的使用
以前都是使用Panel.没有用过其他容器类.郁闷,要控制界面的自适应真是麻烦.平常用一用dock.anchor差不多了,但是,更复杂的情景下,就没法了.例如一行有多个控件,有的要求跟据窗口缩放,只缩放 ...
- Centos7.5 java环境的安装配置
1.查看系统中的java环境 [root@localhost ~]# java -version openjdk version "1.8.0_101" OpenJDK Runti ...
- codeforces 653D D. Delivery Bears(二分+网络流)
题目链接: D. Delivery Bears time limit per test 2 seconds memory limit per test 256 megabytes input stan ...