zoukankan      html  css  js  c++  java
  • 适用函数ALSM_EXCEL_TO_INTERNAL_TABLE把excel文件传输到内表中

    相关文章:http://www.cnblogs.com/caizjian/archive/2013/04/12/3016284.html

    FM:ALSM_EXCEL_TO_INTERNAL_TABLE 是上载Excel文件的一个函数,但是这个函数有两个限制。

    一是每个CELL只能导入前50个字符,二是如果超过9999行,行号会初始化为从零开始

    其实解决起来很简单,只要改一下结构 ALSMEX_TABLINE 的字段就行了,然后COPY ALSM_EXCEL_TO_INTERNAL_TABLE 为 ZALSM_EXCEL_TO_INTERNAL_TABLE ,并做少许改动即可。

    另外,如果要上载有打开密码保护的Excel,只要修改一下OLE的 OPEN 语句即可。

    以及导入指定的Sheet等。。

    这个函数的接受内表是ALSMEX_TABLINE类型的内表,只有行和列还有值这三个字段的内表。要是把excel的值传到这个内表中后还需要我们循环处理到想要的内表中。

    示例展示:

    DATA:lt_excel TYPE TABLE OF ALSMEX_TABLINE.
    DATA ls_excel LIKE LINE OF lt_excel.
    FIELD-SYMBOLS:<fs>.
    CONSTANTS: gc_begin_row TYPE i VALUE 1,
    "Beginning row of excel file
               gc_begin_col TYPE i VALUE 1,
               "Beginning column of excel file
               gc_end_row   TYPE i VALUE 999,
               "Ending row of excel file
               gc_end_col   TYPE i VALUE 999.
               "Ending column of excel file
    CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
      EXPORTING
        filename                      = p_file
        i_begin_col                   = gc_begin_row
        i_begin_row                   = gc_begin_col
        i_end_col                     = gc_end_row
        i_end_row                     = gc_end_col
      TABLES
        intern                        = lt_excel
    * EXCEPTIONS
    *   INCONSISTENT_PARAMETERS       = 1
    *   UPLOAD_OLE                    = 2
    *   OTHERS                        = 3
              .
    IF sy-subrc <> 0.
    * Implement suitable error handling here
    ENDIF.
    LOOP AT lt_excel INTO ls_excel.
      IF  ls_excel-col = 1.
                CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'         "物料代码加前导0 。
              EXPORTING
                input        = ls_excel-value
              IMPORTING
                output       = ls_excel-value
              EXCEPTIONS
                length_error = 1
                OTHERS       = 2.
      ENDIF.
    
      ASSIGN COMPONENT ls_excel-col OF STRUCTURE gs_tab to <fs>.   把工作区gs_tab中的字段赋给字段符号,而工作区gs_tab中的字段取决于内表中的列ls_excel-col
      CONDENSE ls_excel-value.                  " 去掉空格
      <fs> = ls_excel-value.
      at end of row.                                    "如果是最后一行就把工作区gs_tab存到内表gt_tab中
            "gs_tab-row = ls_excel-row.
            APPEND gs_tab TO gt_tab.
            CLEAR: gs_tab.
    
          ENDAT.
    
    ENDLOOP.
  • 相关阅读:
    nginx编译安装
    使用scp命令,不同服务器之间拷备文件
    cpu负载过高排查与解决
    Docker安装
    sftp安装
    nginx登陆验证 [done]
    git常用命令
    python常见问题记录
    升级openssl
    rsync使用
  • 原文地址:https://www.cnblogs.com/caizjian/p/3271757.html
Copyright © 2011-2022 走看看