上傳資料到內表

fog911811發表於2013-06-05

1.上傳非xls檔案資料到內表

DATA: begin of gt_upload occurs 0,

line(220),

end of gt_upload.

 

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

filename                = p_fname

filetype                = 'ASC'

TABLES

data_tab                = gt_upload.

 

注意:如果上傳檔案時CSV檔案,則需要拆分一下

LOOP AT gt_upload.

SPLIT gt_upload AT ','

INTO gt_file-bukrs gt_file-gjahr gt_file-belnr

gt_file-stgrd gt_file-budat.

append gt_file.

clear: gt_upload,gt_file.

ENDLOOP.

 

另外:如果想把內表DOWNLOAD到CSV檔案,並希望分隔符不是逗號,可以這樣做

CALL FUNCTION 'SAP_CONVERT_TO_CSV_FORMAT'
  EXPORTING
    i_field_seperator    = ';'
  TABLES
    i_tab_sap_data       = itab
  CHANGING
    i_tab_converted_data = itab1
  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 itab1 INTO wa_itab1.
  TRANSLATE wa_itab1 USING ';,'.
  MODIFY itab1 FROM wa_itab1 INDEX sy-tabix.
ENDLOOP.

CALL FUNCTION 'GUI_DOWNLOAD'
  EXPORTING
    filename = 'C:\TEMP\test.csv'
  TABLES
    data_tab = itab1

 

 

2.上傳xls檔案資料到內表

這個EXCEL上載直接讀取行和列,並把行和列對應的值賦給內表。

DATABEGIN OF it_upload OCCURS 0,
        matnr TYPE zmatpath_gg-matnr,
        ktsch TYPE zmatpath_gg-ktsch,
        wrhos TYPE zmatpath_gg-wrhos,
        rmatnr TYPE zmatpath_gg-rmatnr,
        subgrp TYPE zmatpath_gg-subgrp,
        sortf TYPE zmatpath_gg-sortf,
        path TYPE zmatpath_gg-path,
        flag TYPE c LENGTH 4,
      END OF it_upload.
“定義內表

PARAMETERS:
            p_fname1 LIKE rlgrap-filename.

DATABEGIN OF it_excel OCCURS 0.  ”定義上載的EXCEL內表
        INCLUDE STRUCTURE alsmex_tabline.
DATAEND OF it_excel.

FIELD-SYMBOLS : <fs>.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    EXPORTING
      filename                =  p_fname1
      i_begin_col             = 1
      i_begin_row             = 2
      i_end_col               = 10
      i_end_row         

相關文章