SAP ABAP OLE 操作EXCEL
ole 操作
SAP ABAP OLE 操作EXCEL小结
ABAP直接操作EXCEL实现数据处理。这里是用OLE实现操作EXCEL的。现在还有
DOI操作EXCEL等方法。以后用到再做介绍。此处不是直接生成EXCEL文件,而是从
服务器已经上传的EXCEL模板中下载模板然后打开修改实现数据保存。也可以直接创建
新的EXCEL文件往里面传递数据并设置格式。这里不做介绍。
1.采用模板文件实现。上传EXCEL模板
T-code:SMW0 WebRFC 的二进制数据 包:MI
点击按钮,上传excel模板。
模板数据保存在系统表wwwdata中。
2.在程序中下载模板
*下载EXCEL模板FORM
FORM temp_excel_get.
DATA: lo_objdata LIKE wwwdatatab,
lo_mime LIKE w3mime,
lc_filename TYPE string VALUE"test01" ,
lc_fullpath TYPE string VALUE"D:\test\" ,
lc_path TYPE string VALUE"D:\test\" ,
ls_destination LIKE rlgrap-filename,
ls_objnam TYPE string,
li_rc LIKE sy-subrc,
ls_errtxt TYPE string.
DATA:p_objid TYPE wwwdatatab-objid,
p_dest LIKE sapb-sappfad.
p_objid = "ZTEST.XLS". “此处为EXCEL模板名称
CALL METHOD cl_gui_frontend_services=>file_save_dialog ”调用保存对话框
EXPORTING
default_extension = "XLS"
default_file_name = lc_filename
CHANGING
filename = lc_filename
path = lc_path
fullpath = lc_fullpath
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
OTHERS = 4.
IF lc_fullpath = "".
MESSAGE "不能打开excel" TYPE "E".
ENDIF.
IF sy-subrc = 0.
p_dest = lc_fullpath.
* concatenate p_objid ".XLS" into ls_objnam.
CONDENSE ls_objnam NO-GAPS.
SELECT SINGLE relid objid FROM wwwdata INTO CORRESPONDING FIELDS OF lo_objdata
WHERE srtf2 = 0 AND relid = "MI" AND objid = p_objid.
*检查表wwwdata中是否存在所指定的模板文件
IF sy-subrc NE 0 OR lo_objdata-objid EQ space.“如果不存在,则给出错误提示
CONCATENATE "模板文件" ls_objnam "不存在" INTO ls_errtxt.
MESSAGE ls_errtxt TYPE "I".
ENDIF.
ls_destination = p_dest. ”保存路径
*如果存在,调用DOWNLOAD_WEB_OBJECT 函数下载模板到路径下
CALL FUNCTION "DOWNLOAD_WEB_OBJECT"
EXPORTING
key = lo_objdata
destination = ls_destination
IMPORTING
rc = li_rc.
IF li_rc NE 0.
CONCATENATE "模板文件:" ls_objnam "下载失败" INTO ls_errtxt.
MESSAGE ls_errtxt TYPE "E".
ENDI
F.
fname = ls_destination.
ENDIF.
ENDFORM. "fm_excel
3.下载完模板后,打开模板文件,填入数据
CREATE OBJE
ole 操作
CT excel "EXCEL.APPLICATION". "Create EXCEL OBJECT
IF sy-subrc NE 0.
EXIT.
ENDIF.
SET PROPERTY OF excel "Visible" = 0. "1/0 是否显示EXCEL
CALL METHOD OF excel "Workbooks" = workbook.
CALL METHOD OF workbook "Open"
EXPORTING
#1 = fname. ."打开上面下载路径下的excel文件
CALL METHOD OF excel "Sheets" = sheet
EXPORTING
#1 = 1.
CALL METHOD OF sheet "Select" .
CALL METHOD OF sheet "ACTIVATE". “sheet 激活
SET PROPERTY OF sheet "NAME" = sheetname. “设定sheet名称
*此处假设内表itab 中已经存在需要写入excel中的数据
*并且假如从模板的第7行开始插入数据
LOOP AT itab INTO wa.
tab = wa-tabix + 6.
*在excel中插入一行
PERFORM excel_row_insert USING sheet tab 1.
*填充所插入行的每个单元格的数据
PERFORM fill_range USING tab 1 wa-t01.
PERFORM fill_range USING tab 2 wa-t02.
PERFORM fill_range USING tab 3 wa-t03.
PERFORM fill_range USING tab 4 wa-t04.
PERFORM fill_range USING tab 5 wa-t05.
PERFORM fill_range USING tab 6 wa-t06.
ENDLOOP.
*设置EXCEL中所插入的数据行边框线格式为黑色有边框
bod = tab.
CONDENSE bod NO-GAPS.
CONCATENATE "A6:F" bod INTO bod.
PERFORM borderrange USING excel bod.
PERFORM sub_excel_save."保存excel数据
*&---------------------------------------------------------------------*
*& Form sub_excel_save
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM sub_excel_save.
GET PROPERTY OF excel "ActiveSheet" = sheet. “获取活动SHEET
FREE OBJECT sheet.
FREE OBJECT workbook.
GET PROPERTY OF excel "ActiveWorkbook" = workbook.
CALL METHOD OF workbook "SAVE".
SET PROPERTY OF excel "Visible" = 1. "是否显示EXCEL 此处显示不退出
* SET PROPERTY OF excel "Visible" = 1.
* CALL METHOD OF workbook "CLOSE".
* CALL METHOD OF excel "QUIT". 注释部分为不显示直接退出
FREE OBJECT sheet.
FREE OBJECT workbook.
FREE OBJECT excel.
ENDFORM. "save_book
<
…… 此处隐藏:3662字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [教学研究]2012西拉科学校团少队工作总结
- [教学研究]建筑工程公司档案管理制度
- [教学研究]小学数学人教版六年级上册圆的周长和面
- [教学研究]ERP电子行业解决方案
- [教学研究]钢支撑租赁合同范本
- [教学研究]预应力自动张拉系统用户手册Rev1.0
- [教学研究]MOOC课程:金瓶梅人物写真(每章节课后
- [教学研究]追加被执行人申请书(适用追加夫妻关系)
- [教学研究]2014年驾考科目一考试最新题库766
- [教学研究]2013-2014学年度九年级物理第15章《电
- [教学研究]新版中日交流标准日本语初级下26课-客
- [教学研究]小导管注浆施工作业指导书
- [教学研究]一般财务人员能力及人岗匹配评估表
- [教学研究]打1.2.页 小学一年级暑假口算100以内加
- [教学研究]学习贯彻《中国共产党党和国家机关基层
- [教学研究]2012年呼和浩特市中考试卷_35412
- [教学研究]最简易的电线电缆购销合同范本
- [教学研究]如何开展安全标准化建设
- [教学研究]工作分析与人岗匹配
- [教学研究]2016-2017学年高中历史第七单元现代中
- 山东省义务教育必修地方课程小学三年级
- 台湾宜兰大学互联网交换技术课程 01_In
- 思想品德:第一课《我知我家》课件(人
- SAR合成孔径雷达图像点目标仿真报告(附
- 利辛县“十三五”规划研究报告
- 2015-2020年中国手机APP行业市场发展趋
- 广告策略、创意表现、媒体方案
- 企业如何申请专利的的几点思考
- 《中国教育简史》网上作业
- 高中历史第二单元西方人文精神的起源及
- 年终晚会必备_精彩的主持稿_精心整理_
- 信息工程专业自荐书
- 2019高考历史人教版一轮练习:第十二单
- JAVA俱乐部管理系统软件需求规格说明书
- 2016-2021年中国小型板料折弯机行业市
- (人教新课标)六上_比的基本性质课件PPT
- 辽宁省公务员考试网申论备考技巧:名言
- 神经阻滞麻醉知情同意书
- 施工企业信息填报、审核和发布的相关事
- 初一(七年级)英语完形填空100篇




