上传Excel文件到SAP内表
REPORT z_upload_excel.
TYPE-POOLS: truxs.
TYPES: BEGIN OF t_datatab,
col1(30) TYPE c,
col2(30) TYPE c,
col3(30) TYPE c,
END OF t_datatab.
DATA: it_datatab TYPE STANDARD TABLE OF t_datatab,
wa_datatab TYPE t_datatab.
DATA: it_raw TYPE truxs_t_text_data.
PARAMETERS: p_file TYPE rlgrap-filename.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
START-OF-SELECTION.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
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.
LOOP AT it_datatab INTO wa_datatab.
WRITE:/ wa_datatab-col1,
wa_datatab-col2,
wa_datatab-col3.
ENDLOOP.
如果excel中1个单元格内容的长度可能有1000以上或更多,
就把alsm_excel_to_internal_table copy出来,然后copy
一个intern所参考 的structure,把value的长度改为4096.
Excel格式下载内表到本机
report z_export_excel.
PARAMETERS: p_file LIKE rlgrap-filename DEFAULT 'C:test4.xls'.
DATA: t100_lines TYPE STANDARD TABLE OF t001 WITH HEADER LINE.
t100_lines-mandt = '200'.
t100_lines-bukrs = '公司'.
t100_lines-butxt = '公司代码'.
t100_lines-ort01 = '公司代码'.
APPEND t100_lines.
SELECT * FROM t001 APPENDING TABLE t100_lines.
CALL FUNCTION 'SAP_CONVERT_TO_XLS_FORMAT'
EXPORTING
i_filename = p_file
TABLES
i_tab_sap_data = t100_lines.