EXCEL上传得时候特殊情况

作者 : admin 本文共2884个字,预计阅读时间需要8分钟 发布时间: 2024-06-4 共1人阅读

比如excel里面不全是我们需要的,还有一些需要处理EXCEL中的日期,去掉‘-’等

DATA:begin_row TYPE i VALUE '2',
       begin_col TYPE i VALUE '1',
       end_row   TYPE i VALUE '9999',
       end_col   TYPE i VALUE '90',
       filename  TYPE rlgrap-filename,
       gt_excel  TYPE zalsmex_tabline OCCURS 0 WITH HEADER LINE,
       gt_excel_copy  TYPE zalsmex_tabline OCCURS 0 WITH HEADER LINE,
       num       TYPE i,
       rt_col    TYPE RANGE OF kcd_ex_col_n,
       rs_col    LIKE LINE OF rt_col,
       _n_r      TYPE char2,
       _r        TYPE char1.

  FIELD-SYMBOLS  .
  REFRESH:gt_gts_file_line_copy,gt_gts_file_line_2,gt_gts_file_line.
  _n_r = cl_abap_char_utilities=>cr_lf.
  _r = _n_r+1(1).
  rs_col-sign    = 'I'.
  rs_col-option  = 'EQ'.
  rs_col-low     = '0002'.
  APPEND rs_col TO rt_col.
  rs_col-low     = '0006'.
  APPEND rs_col TO rt_col.
  rs_col-low     = '0010'.
  APPEND rs_col TO rt_col.
  rs_col-low     = '0011'.
  APPEND rs_col TO rt_col.
  rs_col-low     = '0012'.
  APPEND rs_col TO rt_col.
  rs_col-low     = '0013'.
  APPEND rs_col TO rt_col.
  rs_col-low     = '0014'.
  APPEND rs_col TO rt_col.
  rs_col-low     = '0015'.
  APPEND rs_col TO rt_col.
  rs_col-low     = '0016'.
  APPEND rs_col TO rt_col.
  rs_col-low     = '0017'.
  APPEND rs_col TO rt_col.
  rs_col-low     = '0019'.
  APPEND rs_col TO rt_col.
  rs_col-low     = '0020'.
  APPEND rs_col TO rt_col.
  rs_col-low     = '0021'.
  APPEND rs_col TO rt_col.
  rs_col-low     = '0022'.
  APPEND rs_col TO rt_col.
  rs_col-low     = '0023'.
  APPEND rs_col TO rt_col.
  rs_col-low     = '0024'.
  APPEND rs_col TO rt_col.
  rs_col-low     = '0025'.
  APPEND rs_col TO rt_col.
  rs_col-low     = '0029'.
  APPEND rs_col TO rt_col.
  rs_col-low     = '0054'.
  APPEND rs_col TO rt_col.
  rs_col-low     = '0055'.
  APPEND rs_col TO rt_col.
  rs_col-low     = '0056'.
  APPEND rs_col TO rt_col.
  rs_col-low     = '0057'.
  APPEND rs_col TO rt_col.
  rs_col-low     = '0058'.
  APPEND rs_col TO rt_col.
  rs_col-low     = '0060'.
  APPEND rs_col TO rt_col.
  rs_col-low     = '0063'.
  APPEND rs_col TO rt_col.
  rs_col-low     = '0064'.
  APPEND rs_col TO rt_col.


  filename = p_path.
  CALL FUNCTION 'ZALSM_EXCEL_TO_INTERNAL_TABLE'
    EXPORTING
      filename    = filename
      i_begin_col = begin_col
      i_begin_row = begin_row
      i_end_col   = end_col
      i_end_row   = end_row
    TABLES
      intern      = gt_excel[].

  IF gt_excel[] IS INITIAL.
    MESSAGE '请填充数据' TYPE 'S' DISPLAY LIKE 'E'.
*    .EXIT.
  ENDIF.

  SORT gt_excel[] BY row col value.
*  DELETE gt_excel[] WHERE col NOT IN rt_col.


*&--------------added by handlmq 17.05.2024 13:04:31  begin---------------------&*
data:I(2) TYPE I.
  gt_excel_copy[] = gt_excel[].
  DATA:zn TYPE kcd_ex_row_n.
  DATA:n  TYPE kcd_ex_col_n.
  LOOP AT gt_excel_copy.
    ON CHANGE OF gt_excel_copy-row.
      zn = gt_excel_copy-row.
      CLEAR:n.
    ENDON.
    n = n + 1.

    IF n  gt_excel_copy-col.
      I = gt_excel_copy-col - n.
      DO I  TIMES.
        gt_excel-col = n.
        gt_excel-row = zn.
        APPEND gt_excel.
        n = n + 1.
      ENDDO.
    ENDIF.
  ENDLOOP.
*&--------------added by handlmq 17.05.2024 13:04:31  end-----------------------&*
  SORT gt_excel[] BY row col value.
  DELETE gt_excel[] WHERE col NOT IN rt_col.
  LOOP AT gt_excel.

    ON CHANGE OF gt_excel-row.
      IF sy-tabix NE 1.
        APPEND gs_gts_file_line_copy TO gt_gts_file_line_copy.
        CLEAR: gs_gts_file_line_copy,num.
      ENDIF.
    ENDON.

    num = num + 1.
    ASSIGN COMPONENT num OF STRUCTURE gs_gts_file_line_copy TO .
    IF  IS ASSIGNED .
      IF num = 18.
        REPLACE '-' INTO gt_excel-value WITH ``.
        REPLACE '-' INTO gt_excel-value WITH ``.
      ENDIF.
      IF num = 17.
        REPLACE ALL OCCURRENCES OF _r IN gt_excel-value WITH ` `.
        REPLACE ALL OCCURRENCES OF '"' IN gt_excel-value WITH ''.
      ENDIF.
       =  gt_excel-value.
      UNASSIGN .
    ENDIF.
  ENDLOOP.

  APPEND gs_gts_file_line_copy TO gt_gts_file_line_copy.

本站无任何商业行为
个人在线分享 » EXCEL上传得时候特殊情况
E-->