ABAP 自定义的ALV导出excel按钮,导出ALV内表中其中某几列的数据

DATA: v_excel TYPE ole2_object,
        v_book  TYPE ole2_object,
        v_font  TYPE ole2_object,
        v_cell  TYPE ole2_object,
        v_column TYPE ole2_object.
  FIELD-SYMBOLS  <fs_txt>  TYPE any .


  DATA: row_i TYPE i,
        col_i TYPE i.
  DEFINE fill_cell.
    call method of v_excel  'CELLS' = v_cell "单元格位置
       exporting
         #1 = &1
         #2 = &2.
    set property of v_cell 'value' = &3.
    call method of v_cell 'FONT'  = v_font.
    set property of v_font 'Bold' = &4.
    set property of v_font 'size' = &5.
  END-OF-DEFINITION.
  CREATE OBJECT v_excel 'Excel.Application'.
  CALL METHOD OF
      v_excel
      'Workbooks' = v_book.
  CALL METHOD OF
      v_book
      'ADD'.
***设置excel抬头信息
  fill_cell 1 1   '客户代码'          1 10.
  SET PROPERTY OF v_cell 'HorizontalAlignment' = -4108.
  fill_cell 1 2   '客户名称'          1 10.
  SET PROPERTY OF v_cell 'HorizontalAlignment' = -4108.
  fill_cell 1 3   'CSO Customer'          1 10.
  SET PROPERTY OF v_cell 'HorizontalAlignment' = -4108.
  fill_cell 1 4   '销售员'      1 10.
  SET PROPERTY OF v_cell 'HorizontalAlignment' = -4108.
  fill_cell 1 5   'PMU订单号'      1 10.
  SET PROPERTY OF v_cell 'HorizontalAlignment' = -4108.
  fill_cell 1 6   'PMU项目号'      1 10.
  SET PROPERTY OF v_cell 'HorizontalAlignment' = -4108.
  fill_cell 1 7   'LSU订单号'      1 10.
  SET PROPERTY OF v_cell 'HorizontalAlignment' = -4108.
  fill_cell 1 8   'LSU项目号'          1 10.
  SET PROPERTY OF v_cell 'HorizontalAlignment' = -4108.
  fill_cell 1 9   '发货数量'          1 10.
  SET PROPERTY OF v_cell 'HorizontalAlignment' = -4108.
  fill_cell 1 10   'PMU发货批次号'        1 10.
  SET PROPERTY OF v_cell 'HorizontalAlignment' = -4108.
  fill_cell 1 11   'LSU发货批次号'          1 10.
  SET PROPERTY OF v_cell 'HorizontalAlignment' = -4108.
  fill_cell 1 12   '发货地址'          1 10.
  SET PROPERTY OF v_cell 'HorizontalAlignment' = -4108.
  fill_cell 1 13   '城市'          1 10.
  SET PROPERTY OF v_cell 'HorizontalAlignment' = -4108.
  fill_cell 1 14   '联系人'          1 10.
  SET PROPERTY OF v_cell 'HorizontalAlignment' = -4108.
  fill_cell 1 15   '电话'          1 10.
  SET PROPERTY OF v_cell 'HorizontalAlignment' = -4108.
  fill_cell 1 16  'Comments'          1 10.
  SET PROPERTY OF v_cell 'HorizontalAlignment' = -4108.
  fill_cell 1 17  'check credit info'          1 10.
  SET PROPERTY OF v_cell 'HorizontalAlignment' = -4108.
***设置excel 内容信息
  LOOP AT gt_out INTO gs_out WHERE check_box = 'X' .
    row_i = sy-tabix + 1.
*      col_i = sy-index .
    fill_cell row_i 1 gs_out-kunnr 0 10.
    fill_cell row_i 2 gs_out-name1 0 10.
    fill_cell row_i 3 gs_out-kunnr_cso 0 10.
    fill_cell row_i 4 gs_out-namev 0 10.
    fill_cell row_i 5 gs_out-vbeln 0 10.
    fill_cell row_i 6 gs_out-posnr 0 10.
    fill_cell row_i 7 gs_out-vbeln_cso 0 10.
    fill_cell row_i 8 gs_out-posnr_cso 0 10.
    fill_cell row_i 9 gs_out-pikmg 0 10.
    fill_cell row_i 10 gs_out-vbeln_dn 0 10.
    fill_cell row_i 11 gs_out-vbeln_dn_cso 0 10.
    fill_cell row_i 12 gs_out-street 0 10.
    fill_cell row_i 13 gs_out-city 0 10.
    fill_cell row_i 14 gs_out-remark 0 10.
    fill_cell row_i 15 gs_out-tel_number 0 10.
    fill_cell row_i 16 gs_out-text 0 10.
    fill_cell row_i 17 gs_out-text_check 0 10.
***资金类的字段
*   call method of
*            v_excel
*            'COLUMNS' = v_column
*          exporting
*            #1        = 12.
    CALL METHOD OF
        v_excel
        'Columns' = v_column.
    CALL METHOD OF
        v_column
        'Autofit'.

*** 设置excel为可见
    SET PROPERTY OF  v_excel 'Visible' = 1.
  ENDLOOP.

posted @ 2021-03-17 14:07  闫默涵  阅读(377)  评论(0)    收藏  举报