ABAP EXCEL 上传 和下载 过程

*定义内表

DATA: BEGIN OF ITAB1 OCCURS 0,
   。。。。。。。
END OF ITAB1.

DATA: itab LIKE ITAB1 OCCURS WITH HEADER LINE.

**************************定义控件***********************************
SELECTION-SCREEN 
BEGIN OF BLOCK b2 WITH FRAME TITLE t2.
PARAMETERS:cc AS CHECKBOX DEFAULT 'X'.
PARAMETERS: pc_file(80).
SELECTION-SCREEN END OF BLOCK b2.
*********************************************************************************
INITIALIZATION.
*  t1 = '查询条件'.
  t2 = '文件上传'.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR pc_file.
  PERFORM sub_find USING pc_file.


*********************************************************************************

FORM sub_find USING pc_file.   "---------------------选择EXCEL文件------------------

* Data for open dialog
  DATA: l_filetab   TYPE filetable,
        l_rc        TYPE i.
  CLEAR l_filetab.
  REFRESH l_filetab.
* Open dialog
  CALL METHOD cl_gui_frontend_services=>file_open_dialog
    EXPORTING
*      WINDOW_TITLE            = 'SAP Custom - Open File'
*      DEFAULT_EXTENSION       =
      default_filename        = '*.xls'
*      FILE_FILTER             = '*.xls'
      initial_directory       = 'd:\'
      multiselection          = ''
    CHANGING
      file_table              = l_filetab
      rc                      = l_rc
    EXCEPTIONS
      cntl_error              = 1
      error_no_gui            = 2
      not_supported_by_gui    = 3
      OTHERS                  4.
* Get file path
  CHECK l_rc EQ 1.
  READ TABLE l_filetab INDEX INTO pc_file.

ENDFORM.                    "Sub_find


FORM uploaddata.   "-------------------------上传EXCEL --------------------

  DATA: BEGIN OF i_excel OCCURS 0.
          INCLUDE STRUCTURE alsmex_tabline.
  DATA: END OF i_excel.
  DATA: l_answer(1) TYPE c.
  DATA: l_column TYPE i.
  FIELD-SYMBOLS: <fs>.
  DATA: l_pathname LIKE rlgrap-filename.

  MOVE pc_file TO l_pathname.
  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    EXPORTING
      filename                = l_pathname
      i_begin_col             = c_begin_col
      i_begin_row             = c_begin_row
      i_end_col               = c_end_col
      i_end_row               = c_end_row
    TABLES
      intern                  = i_excel
    EXCEPTIONS
      inconsistent_parameters = 1
      upload_ole              = 2
      OTHERS                  3.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
          WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ELSE.
    IF i_excel[] IS INITIAL.
      CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'
        EXPORTING
*         DEFAULTOPTION        = 'Y'
          diagnosetext1        = 'No data in excel'
*         DIAGNOSETEXT2        = ' '
*         DIAGNOSETEXT3        = ' '
          textline1            = 'No data in excel'
*         TEXTLINE2            = ' '
          titel                = 'Confirm'
*         START_COLUMN         = 25
*         START_ROW            = 6
*         CANCEL_DISPLAY       = 'X'
        IMPORTING
          answer               = l_answer.
    ELSE.
      DELETE i_excel WHERE row = '0001'.
      SORT i_excel BY row col.
      LOOP AT i_excel.
        MOVE i_excel-col TO l_column.
        ASSIGN COMPONENT l_column OF STRUCTURE itab TO <fs>.
        MOVE i_excel-value TO <fs>.
        AT END OF row.
          APPEND itab.
          CLEAR itab.
        ENDAT.
      ENDLOOP.
    ENDIF.
  ENDIF.
ENDFORM.                    "UPLOADDATA


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

trassion

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值