我知道函数模块ALSM_EXCEL_TO_INTERNAL_TABLE。此 FM 创建一个包含三列(行、列、值(的内部表。但是我想创建一个与我的 Excel 工作表具有相同布局的内部表。我怎样才能做到这一点?
如果要在前台上传 excel,则可以使用类cl_mass_spreadsheet_service。请参阅下面的示例代码:
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
).
如果您使用 FM ALSM_EXCEL_TO_INTERNAL_TABLE 上传数据,则可以循环访问此 FM 使用的内部表(您提到的带有行、列、值的表(并相应地填充您自己的内部表(看起来像 Excel 工作表(。
cl_mass_spreadsheet_service=>import_from_file以及但没有DDIC结构。
不幸的是,这些方法实际上会打开并显示 EXCEL...