模拟SAP ALV下载XLSX文件

模拟SAP ALV下载XLSX文件

在日常项目中总能遇到要下载数据生成文件的需求,今天看了一下标准程序,做了一个模拟ALV下载数据生成XSLX的功能
在这里插入图片描述
在这里插入图片描述
代码如下:
TRY.
CL_SALV_TABLE=>FACTORY(
IMPORTING
R_SALV_TABLE = DATA(LR_TABLE)
CHANGING
T_TABLE = <FT_DATA> ).
CATCH CX_SALV_MSG. "#EC NO_HANDLER
ENDTRY.

调整字段的标题
DATA(LR_COLUMNS) = LR_TABLE->GET_COLUMNS( ).
LOOP AT GR_MAIN->GET_FIELDCAT_EXPORT_DATA( ) INTO DATA(LS_FIELDCAT).
DATA(LR_COLUMN) = LR_COLUMNS->GET_COLUMN( LS_FIELDCAT-FIELDNAME ).
IF LR_COLUMN IS NOT INITIAL.
LR_COLUMN->SET_MEDIUM_TEXT( LS_FIELDCAT-SCRTEXT_M ).
ENDIF.
ENDLOOP.

生成XML数据
DATA(LV_XML) = LR_TABLE->TO_XML( XML_TYPE = ‘10’ ).
导出XML数据并生成XLSX文件
CALL FUNCTION ‘XML_EXPORT_DIALOG’
EXPORTING
I_XML = LV_XML
I_DEFAULT_EXTENSION = GC_DEFAULT_EXTENSION
I_INITIAL_DIRECTORY = ‘’
I_DEFAULT_FILE_NAME = GC_DEFAULT_FILE_NAME
I_MASK = GC_DEFAULT_MASK
EXCEPTIONS
APPLICATION_NOT_EXECUTABLE = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值