SAP ABAP上传Excel数据 报CONVT_NO_NUMBER千分位问题的处理

复制代码
ASSIGN COMPONENT ls_excel_tab-col OF STRUCTURE <fs_excel_s> TO <fs_value>.
    IF sy-subrc EQ 0.
      CONDENSE ls_excel_tab-value.

      cl_descr ?= cl_abap_typedescr=>describe_by_data( <fs_excel_s> ).
      ASSIGN cl_descr->components[ ls_excel_tab-col ] TO <fs_comp>.
      IF <fs_comp>-type_kind = 'P'.
        lvfldvalue = ls_excel_tab-value.
        PERFORM RV_MARK_OF_thousandth(zabap_common_program) USING  lvfldvalue CHANGING lvfldvalue.
        ls_excel_tab-value  = lvfldvalue.
      ENDIF.
      MOVE ls_excel_tab-value TO <fs_value>.
    ENDIF.

    AT END OF row.
      APPEND <fs_excel_s> TO <fs_excel_t>.
      lv_row = ls_excel_tab-row + 1.
    ENDAT.

*解决千分位问题  eg.123,123.00 → 123123.00 add by gavin
FORM RV_MARK_OF_thousandth USING iv_feild TYPE char50 CHANGING ev_feild TYPE char50.
  CHECK iv_feild IS NOT INITIAL.
  DATA: lv_str   TYPE string,
        lv_strt  TYPE string,
        lv_char1 TYPE char1,
        lv_idx   TYPE int4,
        lv_idxt  TYPE int4.

  lv_str = iv_feild.

  lv_idxt = strlen( lv_str ).
  lv_idx = 0.

  DO lv_idxt TIMES.

    lv_char1 = lv_str+lv_idx(1).
    CASE lv_char1.
      WHEN '0' OR '1' OR '2' OR '3' OR '4' OR '5' OR '6' OR '7' OR '8' OR '9' OR '.'.
        lv_strt = lv_strt && lv_char1.
      WHEN OTHERS.
    ENDCASE.
    lv_idx = lv_idx + 1.
  ENDDO.

  CONDENSE lv_strt.
  IF lv_strt+0(1) NE '.'.
    ev_feild = lv_strt.
  ENDIF.
ENDFORM.
相关推荐
王夏奇1 小时前
Python-对excel文件操作-pandas库
python·excel·pandas
E_ICEBLUE1 小时前
Excel 删除空白行的 5 种方法 【手动管理与 Python 自动化】
python·自动化·excel
身如柳絮随风扬2 小时前
Spring Boot文档导出(Word,Excel,PPT),导入(Excel)
spring boot·word·excel·ppt
陳土2 小时前
EXCEL重点函数
excel
海天一色y3 小时前
Vim 编程完全指南:从入门到精通
编辑器·vim·excel
softbangong3 小时前
888-Excel数据填充PPT工具
powerpoint·excel·办公自动化·自动化办公·excel数据处理·ppt批量生成·文档批量制作
城数派4 小时前
2005-2025年我国省市县三级的逐日露点温度数据(Shp/Excel格式)
excel
码农很忙4 小时前
AI赋能表格革命:告别Excel痛点,开启数据处理新纪元
人工智能·excel
骆驼爱记录4 小时前
3步删除Word目录空白行
自动化·word·excel·wps·新人首发
城数派12 小时前
2005-2025年我国乡镇级的逐日最低气温数据(Shp/Excel格式)
数据分析·excel