ABAP转换数字为Excel列名(1->A)

背景

使用ABAP2XLSX时,需要通过列名实现value方法调用,需要将列索引的数字12345转换为Excel列名ABCDE。

解决方案

ABAP2XLSX用的太少,很多姿势还不会,于是自己折腾写了一段,感觉还可以哈哈。

* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Instance Public Method ZCL_MDG_MAT_UPLOAD_FORM->CONVERT_NUM2COLUMN
* +-------------------------------------------------------------------------------------------------+
* | [--->] I_NUM                          TYPE        INT4
* | [<---] E_COL                          TYPE        STRING
* +--------------------------------------------------------------------------------------</SIGNATURE>
  method convert_num2column.

    data:lv_str   type string,
         lv_float type f.

    lv_float = i_num.
    do.
      data(lv_mod) = lv_float mod 26.
      if lv_mod eq 0.
        lv_mod = 25."get last character 'Z'
      else.
        lv_mod -= 1.
      endif.

      data(lv_ahpla) = sy-abcde+lv_mod(1).
      lv_str = |{ lv_ahpla case = upper }| && lv_str.
      lv_float = lv_float / 26.
      if lv_float le 1.
        exit.
      endif.
    enddo.

    e_col = lv_str.
  endmethod.

其实不用这么麻烦,直接使用自带工具类ZCL_EXCEL_COMMON的方法CONVERT_COLUMN2ALPHA即可,通过ASCII码直接转字母的,肯定比我自己用字符截取的效率高得多。
在这里插入图片描述源代码实现如下,如系统未安装ABAP2XLSX, 可以参考使用

 <SIGNATURE>------------------------------------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值