SAP ALV导出Excel时保留数字前导零

今天遇到一个需求,用户在ALV中导出Excel时想要保留数字文本前“0”,下面是找到的一些方法。

当将ALV报表数据导出到Excel时,数字前面的零(前导零)默认会被Excel去掉。以下是几种解决方法:

方法1经测无效;方法2导出的数据在Excel中显示时会有‘ ‘ ’ 一个单引号存在;方法3可以正常显示数字前的0;方法4未测试。(仅供参考)

  • 方法1:将字段转换为文本类型

在ALV字段目录(FIELDCATALOG)中,将需要保留前导零的字段设置为文本类型:

DATA: lt_fieldcat TYPE slis_t_fieldcat_alv.

LOOP AT lt_fieldcat ASSIGNING <fs_fieldcat> WHERE fieldname = '您的字段名'.
  <fs_fieldcat>-datatype = 'CHAR'.  "设置为字符类型
  <fs_fieldcat>-just = 'L'.         "左对齐
ENDLOOP.
  • 方法2:在数据前添加单引号

在准备数据时,在需要保留前导零的值前添加单引号:

LOOP AT lt_data ASSIGNING <fs_data>.
  <fs_data>-your_field = '''' && <fs_data>-your_field.
ENDLOOP.
  • 方法3:使用Excel格式前缀

在导出前,为单元格设置Excel格式前缀:

LOOP AT lt_data ASSIGNING <fs_data>.
  <fs_data>-your_field = '="' && <fs_data>-your_field && '"'.
ENDLOOP.
  • 方法4:使用OO ALV的样式设置

如果使用OO ALV,可以设置单元格属性:

DATA: lo_column TYPE REF TO cl_salv_column.

lo_column ?= lo_columns->get_column( 'YOUR_FIELD' ).
lo_column->set_celltype( if_salv_c_cell_type=>text ).

方法3测试结果 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值