ABAP: Excel - Download by OLE - 4. 一个完整的Excel download程序

该博客演示了一个使用ABAP程序下载Excel数据的过程。通过调用SAP GUI函数,首先获取用户选择的路径,然后从数据库中选取SFLIGHT表的数据。接着,使用OLE2下载一个模板,并填充数据到Excel表格中,包括航班信息如航司ID、航班号等。最后,将编辑后的Excel保存到用户指定的路径,并关闭应用程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

*&---------------------------------------------------------------------*
*& Report  ZTEST3201
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ztest3201.


DATA: gv_application TYPE ole2_object,                 "一些定义在TOP里的data
      gv_sheet       TYPE ole2_object,
      gv_cell        TYPE ole2_object,
      gv_workbook    TYPE ole2_object,
      gv_columns     TYPE ole2_object,
      gv_rows        TYPE ole2_object,
      gv_file        TYPE rlgrap-filename.

DATA: gt_sflight TYPE TABLE OF sflight,
      gs_sflight TYPE sflight.

PARAMETERS: path TYPE filedir OBLIGATORY.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR path.
  PERFORM frm_get_filepath CHANGING path.

START-OF-SELECTION.
  SELECT * FROM sflight
    INTO CORRESPONDING FIELDS OF TABLE gt_sflight
    UP TO 50 ROWS.
  PERFORM frm_download_excel_local.

*&---------------------------------------------------------------------*
*&      Form  frm_get_filepath
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_PATH     text
*----------------------------------------------------------------------*
FORM frm_get_filepath CHANGING p_path.
  DATA: lv_title  TYPE string.
  DATA: lv_inifld TYPE string.
  DATA: lv_path   TYPE string.

  lv_title  = 'EXCEL DOWNLOAD'.         "dialog screen的标题,可选参数
  lv_inifld = 'C:\'.                    "打开dialog screen的默认文件夹位置

  CALL METHOD cl_gui_frontend_services=>directory_browse
    EXPORTING
      window_title         = lv_title
      initial_folder       = lv_inifld
    CHANGING
      selected_folder      = lv_path
    EXCEPTIONS
      cntl_error           = 1
      error_no_gui         = 2
      not_supported_by_gui = 3
      OTHERS               = 4.
  IF sy-subrc <> 0.
    CLEAR: p_path.
  ELSE.
    p_path = lv_path.
  ENDIF.

ENDFORM.                    "frm_get_filepath

*&---------------------------------------------------------------------*
*&      Form  frm_download_excel_local
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM frm_download_excel_local .
  DATA: lv_objdata     LIKE wwwdatatab,
        lv_obj_name    LIKE wwwdatatab-objid VALUE 'ZFLIGHT_TEST',    "这个是模板的obj name!
        lv_file_name   TYPE string VALUE 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值