EXCEL上传得时候特殊情况

比如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 <fs> .
  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 <fs>.
    IF <fs> 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.
      <fs> =  gt_excel-value.
      UNASSIGN <fs>.
    ENDIF.
  ENDLOOP.

  APPEND gs_gts_file_line_copy TO gt_gts_file_line_copy.

相关推荐

  1. EXCEL时候特殊情况

    2024-06-08 19:20:03       11 阅读
  2. 一个可以用于生产环境PHP函数

    2024-06-08 19:20:03       38 阅读
  3. 基于Base64Excel文件

    2024-06-08 19:20:03       19 阅读
  4. Xor 特殊情况_题解

    2024-06-08 19:20:03       28 阅读
  5. vue实现excel并显示数据

    2024-06-08 19:20:03       49 阅读
  6. 通过 xlsx 解析excel的数据

    2024-06-08 19:20:03       40 阅读
  7. Element uiexcel到并修改字段名

    2024-06-08 19:20:03       18 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-08 19:20:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-08 19:20:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-08 19:20:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-08 19:20:03       20 阅读

热门阅读

  1. 使用Redis缓存需要注意的地方

    2024-06-08 19:20:03       9 阅读
  2. git 下载openNeuro大文件

    2024-06-08 19:20:03       11 阅读
  3. 哈希表(Hash table)

    2024-06-08 19:20:03       8 阅读
  4. C++协程

    2024-06-08 19:20:03       9 阅读
  5. 【vuejs】vm.$set() 的原理解析和方法以及应用场景

    2024-06-08 19:20:03       8 阅读
  6. 设计模式 —— 装饰器模式

    2024-06-08 19:20:03       8 阅读
  7. 深度学习-10-测试

    2024-06-08 19:20:03       8 阅读
  8. git 怎么让一个文件不提交

    2024-06-08 19:20:03       8 阅读