原创 Tab Zhu [ SAP TAB ](javascript:void\(0\);)
**点击蓝字关注我们**
富强 民主 文明 和谐
自由 平等 公正 法制
爱国 敬业 诚信 友善
_**01** _
**OLE客制EXCEL导出**
**不念过** **去**
**START**
**不畏将来**
今天简单说一下使用OLE的方法来输出自己想要的EXCEL。
结果:
部分代码如下
FORM frm_export_excel_2 .DATA ls_destination TYPE rlgrap-filename.
DATA ls_filename TYPE string.
• 写入数据
SELECT * FROM zmmt001 INTO CORRESPONDING FIELDS OF TABLE lt_zmmt001 .
READ TABLE lt_zmmt001 INTO DATA(ls_zmmt001) INDEX 1.DATA lv_tabix TYPE i.
DATA tablestructure TYPE REF TO cl_abap_structdescr.
tablestructure ?= cl_abap_typedescr=>describe_by_data( ls_zmmt001 ).ls_filename = p_file.
ls_destination = p_file.CALL METHOD zcl_document_jxzhu=>download_template_to_frontendEXPORTING
iv_fun = '2'
name_of_template = '物料主数据客制表'
iv_filepath = ls_filename• iv_relid = 'MI'
iv_objid = 'ZMMT001'
IMPORTING
rv_filepath = ls_filenameEXCEPTIONS
download_error = 1
OTHERS = 2.
WAIT UP TO 2 SECONDS.
*open excel
CREATE OBJECT excel_obj 'EXCEL.APPLICATION'.
IF sy-subrc NE 0.MESSAGE 'EXCEL创建错误' TYPE 'S' DISPLAY LIKE 'E'.
STOP.
ENDIF.CALL METHOD OFexcel_obj
'WORKBOOKS' = book_obj.
SET PROPERTY OF excel_obj 'VISIBLE' = 0.
• SET PROPERTY OF EXCEL_OBJ 'SheetInNewWorkbook' = 1.
• 打开sheet页,(新建使用:call method of book_obj 'Add' = sheet_obj)
CALL METHOD OFbook_obj
'Open' = sheet_obj
EXPORTING
#1 = ls_destination.CALL METHOD OFexcel_obj
'Sheets' = sheet_obj"切换sheets
EXPORTING
#1 = 1.
CALL METHOD OFsheet_obj
'Select'.
CALL METHOD OF sheet_obj 'ACTIVATE'."激活SET PROPERTY OF sheet_obj 'NAME' = '物料属性表'._" 修改sheet的名字_
_* 给第一列写上列名_
LOOP AT tablestructure->components INTO DATA(ls_comps).
lv_tabix = sy-tabix.PERFORM fill_cell USING 1 sy-tabix ls_comps-name .
GET PROPERTY OF cell_obj 'Interior' = color_obj.
SET PROPERTY OF color_obj 'ColorIndex' = 15._" 设置单元格颜色 具体可以查询VBA颜色查询_
ENDLOOP.DATA(lv_row) = 2._* 给Excel写入内容_
LOOP AT lt_zmmt001 INTO ls_zmmt001.
LOOP AT tablestructure->components INTO ls_comps.
lv_tabix = sy-tabix.ASSIGN COMPONENT lv_tabix OF STRUCTURE ls_zmmt001 TO FIELD-SYMBOL(<fs1>).
IF sy-subrc EQ 0.PERFORM fill_cell USING lv_row lv_tabix <fs1> .
ENDIF.
ENDLOOP.
lv_row = lv_row + 1.
ENDLOOP.FREE OBJECT cell_obj.
GET PROPERTY OF excel_obj 'ActiveSheet' = sheet_obj. "获取活动SHEET
FREE OBJECT sheet_obj.
GET PROPERTY OF excel_obj 'ACTIVEWORKBOOK' = book_obj."激活工作区
"save
CALL METHOD OFbook_obj
'SAVE'.
• SET PROPERTY OF excel 'Visible' = 1. "是否显示EXCEL 此处显示不退出
CALL METHOD OFbook_obj
'CLOSE'.
CALL METHOD OFexcel_obj
'QUIT'.
FREE OBJECT book_obj.
FREE OBJECT excel_obj.
ENDFORM.---
*给单元格填入值
FORM fill_cell USINGVALUE ( row )
VALUE ( col )
VALUE ( value ).
CALL METHOD OFexcel_obj
'CELLS' = cell_obj
EXPORTING
#1 = row
#2 = col .
SET PROPERTY OF cell_obj 'VALUE' = value . ENDFORM .
关于
zcl_document_jxzhu=>download_template_to_frontend的方法具体内容
[ ABAP随笔-EXCEL操作笔记 1-Excel模板下载
](http://mp.weixin.qq.com/s?__biz=MzUxODI4MTQyMg==&mid=2247483790&idx=1&sn=3b364a0ceb83e6e8fa82923cfc873dbb&chksm=f98a002fcefd8939bf79eeab5e9930818e66f6527afbc85d5f9a6bf551190e169124285e6bd4&scene=21#wechat_redirect)
**不念过** **去**
**END**
**不畏将来**
**SAP ABAP TAB**
微信号 : TAB_JXZHU
后台回复'ABAP'免费领取学习资料
长按二维码关注我们