ABAP 随笔 EXCEL 笔记5批量导出 SAP_CONVERT_TO_XLS_FORMAT

作者:SAPTAB 约 4 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, Data Engineering, MM, 开发, 数据工程, 物料管理
ABAP 随笔 EXCEL 笔记5批量导出 SAP_CONVERT_TO_XLS_FORMAT - 封面图
ABAP 随笔 EXCEL 笔记5批量导出 SAP_CONVERT_TO_XLS_FORMAT - 封面图

原创 Tab Zhu [ SAP TAB ](javascript:void\(0\);)

**点击蓝字关注我们**

富强 民主 文明 和谐

自由 平等 公正 法制

爱国 敬业 诚信 友善

_**01** _

**批量导出SAP_CONVERT_TO_XLS_FORMAT**

**不念过** **去**

**START**

**不畏将来**

今天写一下SAP_CONVERT_TO_XLS_FORMAT 批量导出excel的函数 ,

相信这个FUNCTION大家都已经用了很多,我就稍微写一下呗。

ABAP 随笔 EXCEL 笔记5批量导出 SAP_CONVERT_TO_XLS_FORMAT - 封面图
ABAP 随笔 EXCEL 笔记5批量导出 SAP_CONVERT_TO_XLS_FORMAT - 封面图

这里需要提一下,为了解决输出内容格式的问题:

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_frontend

EXPORTING

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_filename

EXCEPTIONS

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**

**不畏将来**

ABAP 随笔 EXCEL 笔记5批量导出 SAP_CONVERT_TO_XLS_FORMAT - 封面图
ABAP 随笔 EXCEL 笔记5批量导出 SAP_CONVERT_TO_XLS_FORMAT - 封面图

**SAP ABAP TAB**

微信号 : TAB_JXZHU

后台回复'ABAP'免费领取学习资料

长按二维码关注我们

SAPTAB

关于作者:SAPTAB

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「ABAP随笔EXCEL笔记5批量导出SAP_CONVERT_TO_XLS_FORMAT.md」整理生成,仅用于内部技术分享与学习交流。