代码之家  ›  专栏  ›  技术社区  ›  ImperiousPerfect

将Excel导入具有相同布局的内部表格

  •  2
  • ImperiousPerfect  · 技术社区  · 7 年前

    我知道功能模块ALSM\u EXCEL\u TO\u INTERNAL\u TABLE。此FM创建一个包含三列(行、列、值)的内部表。但是我想创建一个内部表,它的布局与我的Excel表相同。我怎样才能做到这一点?

    3 回复  |  直到 7 年前
        1
  •  2
  •   Suncatcher    7 年前

    如果您正在前台上载excel,则可以使用class cl\u mass\u电子表格服务。请参阅下面的示例代码:

    DATA:
        lv_file      TYPE if_mass_spreadsheet_types=>file_name,
        lt_result    TYPE STANDARD TABLE OF zsd_salesorder_create. "your result table
    
    lv_file = 'C:\some_file.xlsx'.
    
    cl_mass_spreadsheet_service=>fill_table(
        EXPORTING
            iv_file                     = lv_file   "full path+name of file. See method navigate_to_file below
            iv_from_file                = abap_true "use to upload from excel/CSV
            iv_from_clipboard           = abap_false "use to copy directly from clipbiard
            iv_tabname                  = 'Order_Create' "can be whatever
        CHANGING
            ct_table                    = lt_result "if ct_table have the same column names as the excel file, the order of the columns does not matter
    ).
    
        2
  •  1
  •   József Szikszai    7 年前

    如果您使用FM ALSM\u EXCEL\u将数据上传到_INTERNAL\u TABLE,您可以循环浏览该FM使用的内部表格(如您所述的带有行、列、值的表格),并相应地填写您自己的内部表格(看起来像EXCEL表格)。

        3
  •  0
  •   Donnie L    4 年前

    你可以用 cl\u mass\u spreadsheet\u service=>从_文件导入_ 也可以,但没有ddic结构。

    不幸的是,这些方法实际上会打开并显示EXCEL。。。