【ABAP系列】SAP ABAP下载带密码的Excel文件

公众号: SAP Technical
本文作者: matinal
 

 

前言部分

大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。

正文部分

REPORT ztest.
 
DATA : BEGIN OF li_makt OCCURS 0,
         matnr TYPE matnr,
         maktx TYPE maktx,
       END OF li_makt.
 
DATA: BEGIN OF li_head OCCURS 0,
        field(30) TYPE c,
      END OF li_head.
 
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE TEXT-002.
PARAMETERS:
  p_file TYPE rlgrap-filename OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b2.
 
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  PERFORM browse_file CHANGING p_file.
 
START-OF-SELECTION.
 
  REFRESH li_head.
 
  DEFINE mc_head.
    li_head-field = &1.
    APPEND li_head.
  END-OF-DEFINITION.
 
  SELECT matnr maktx INTO TABLE li_makt FROM makt UP TO 20 ROWS WHERE spras = sy-langu .
 
  mc_head : 'Material No', 'Material Description'.
 
  CALL FUNCTION 'EXCEL_OLE_STANDARD_DAT'
    EXPORTING
      file_name                 = p_file
      create_pivot              = 0
      data_sheet_name           = 'Data Material'
      pivot_sheet_name          = ' '
      password                  = 'plazapp'
      password_option           = 1
    TABLES
      data_tab                  = li_makt
      fieldnames                = li_head
    EXCEPTIONS
      file_not_exist            = 1
      filename_expected         = 2
      communication_error       = 3
      ole_object_method_error   = 4
      ole_object_property_error = 5
      invalid_filename          = 6
      invalid_pivot_fields      = 7
      download_problem          = 8
      OTHERS                    = 9.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
 
 
FORM browse_file CHANGING p_file LIKE rlgrap-filename.
  DATA: filetab   TYPE filetable,
        rc        TYPE i,
        lv_offset TYPE i.
 
  FREE filetab.
  CALL METHOD cl_gui_frontend_services=>file_open_dialog
    EXPORTING
      window_title            = 'Choose File'
      default_extension       = '*.*'
      default_filename        = 'c:\*.xls'
    CHANGING
      file_table              = filetab
      rc                      = rc
    EXCEPTIONS
      file_open_dialog_failed = 1
      cntl_error              = 2
      error_no_gui            = 3
      OTHERS                  = 4.
  IF sy-subrc = 0.
    READ TABLE filetab INTO p_file INDEX 1.
  ENDIF.
ENDFORM. " browse_file

 

转载于:https://www.cnblogs.com/SAPmatinal/p/11271149.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值