原创 Tab Zhu [ SAP TAB ](javascript:void\(0\);)
**点击蓝字关注我们**
富强 民主 文明 和谐
自由 平等 公正 法制
爱国 敬业 诚信 友善
_**01** _
**批量导出SAP_CONVERT_TO_XLS_FORMAT**
**不念过** **去**
**START**
**不畏将来**
今天写一下SAP_CONVERT_TO_XLS_FORMAT 批量导出excel的函数 ,
相信这个FUNCTION大家都已经用了很多,我就稍微写一下呗。
这里需要提一下,为了解决输出内容格式的问题:
1\. 先将一个Excel单位格属性设置为文本格式,然后保存下来,用SMW0将EXCEL上传到服务器上
2\. 用zcl_document_jxzhu=>download_template_to_fronten方法来讲模板下载下来
3\. 使用SAP_CONVERT_TO_XLS_FORMAT将内表数据导入到Exce
FORM frm_export_excel_1 .DATA li_filename TYPE rlgrap \- filename .
DATA ls_filename TYPE string .
li_filename = p_file .
ls_filename = p_file .
CALL METHOD zcl_document_jxzhu => download_template_to_frontendEXPORTING
iv_fun = '2' " 选择 FUN 的功能
name_of_template = ' 物料主数据客制表 '
iv_filepath = ls_filename " 当 IV_FUN = 2 时,保存路径 iv_filepath 必填这样就不会弹框选择,可以引用函数外部的路径 _ * _ _ iv_relid = 'MI' _ iv_objid = 'ZMMT001'
IMPORTING
rv_filepath = ls_filenameEXCEPTIONS
download_error = 1
OTHERS = 2 .
WAIT UP TO 2 SECONDS . " 确保从服务器下载的模板保存下来,之后再打开输入。
li_filename = ls_filename .
SELECT * INTO CORRESPONDING FIELDS OF TABLE @lt_zmmt001 FROM zmmt001 .
READ TABLE lt_zmmt001 into data ( ls_zmmt001 ) INDEX 1 ." 为了防止格式的问题,使用这个函数的时候,输出最好用 char 型
TYPES : BEGIN OF lty_excel ,
matnr TYPE char40 ,
id TYPE char10 ,
f1 TYPE char10 ,
f2 TYPE char10 ,
f3 TYPE char10 ,
END OF lty_excel .DATA lt_zmmt001_excel TYPE TABLE OF lty_excel .
MOVE-CORRESPONDING lt_zmmt001 TO lt_zmmt001_excel . “因为使用
SAP_CONVERT_TO_XLS_FORMAT 输出是没有标题行的,所以我们加上标题 INSERT INITIAL LINE INTO
lt_zmmt001_excel ASSIGNING FIELD \- SYMBOL ( <fs1> ) INDEX 1 .
DATA tablestructure TYPE REF TO cl_abap_structdescr .
tablestructure ?= cl_abap_typedescr => describe_by_data ( ls_zmmt001 ).
LOOP AT tablestructure -> components INTO DATA ( ls_comps ).ASSIGN COMPONENT sy \- tabix OF STRUCTURE <fs1> TO FIELD \- SYMBOL (
<fs2> ).
IF sy \- subrc EQ 0 .
<fs2> = ls_comps \- name .
ENDIF .
ENDLOOP .CALL FUNCTION 'SAP_CONVERT_TO_XLS_FORMAT'EXPORTING _ * I_FIELD_SEPERATOR = _ i_line_header = 'X'
i_filename = li_filename
_ * I_APPL_KEEP = ' ' _
TABLES
i_tab_sap_data = lt_zmmt001_excel_ * CHANGING _ _ * I_TAB_CONVERTED_DATA = _
EXCEPTIONS
conversion_failed = 1
OTHERS = 2 . 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)
查看下载template的代码
**不念过** **去**
**END**
**不畏将来**
**SAP ABAP TAB**
微信号 : TAB_JXZHU
后台回复'ABAP'免费领取学习资料
长按二维码关注我们