方法一:
CALL FUNCTION ‘F4_FILENAME’
EXPORTING
field_name = ‘P_FILE’
IMPORTING
file_name = p_file.
CALL FUNCTION ‘TEXT_CONVERT_XLS_TO_SAP’
EXPORTING
* I_FIELD_SEPERATOR =
i_line_header = ‘X’
i_tab_raw_data = it_raw ” WORK TABLE
i_filename = p_file
TABLES
i_tab_converted_data = it_datatab[] “ACTUAL DATA
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
IF sy-subrc 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
优点: 可以直接转换成内表格式,不需要再次填充内表.
方法二:
DATA: l_rc TYPE i,
l_filetable TYPE filetable.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = '请选择导入文件'
file_filter = '文本文件(.txt)|*.txt|EXCEL文件(.xls)|*.xls'
multiselection = 'X'
CHANGING
file_table = l_filetable
rc = l_rc
EXCEPTIONS
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
OTHERS = 5.
IF sy-subrc = 0 AND l_rc = 1.
READ TABLE l_filetable INTO p_infile INDEX 1.
ENDIF.
call function ‘ALSM_EXCEL_TO_INTERNAL_TABLE’
exporting
filename = p_infile
i_begin_col = ‘1′
i_begin_row = ‘2′ “Do not require headings
i_end_col = ‘14′
i_end_row = ‘31′
tables
intern = itab
exceptions
inconsistent_parameters = 1
upload_ole = 2
others = 3.
if sy-subrc 0.
message e010(zz) with text-001. “Problem uploading Excel Spreadsheet
endif.
LOOP AT t_tab.
ASSIGN COMPONENT t_tab-col OF STRUCTURE t_mara TO <fs_mara>.
WRITE t_tab-value TO <fs_mara>.
AT END OF row.
APPEND t_mara.
ENDAT.
ENDLOOP.
特点: 按照行列顺序读取,内表ITAB格式为为行,列,值.使用时需要再次卦填充内表.红色代码可以地动态填充内表...推荐.