만사가귀찮아

ABAP Excel Write

만사가 귀찮아 2022. 5. 31. 11:53

 INCLUDE : OLE2INCL.
 
 DATA : EXCEL TYPE OLE2_OBJECT,
        BOOKS TYPE OLE2_OBJECT,
        BOOK  TYPE OLE2_OBJECT,
        SHEET TYPE OLE2_OBJECT,
        CELL  TYPE OLE2_OBJECT,
        e_cell1 TYPE ole2_object,
        e_cell2 TYPE ole2_object,
        e_range TYPE ole2_object.

  DATA: lv_cnt           TYPE i,
        lv_time1(32)     TYPE c,
        lv_vat(32)       TYPE c,
        lv_sum_amt(32)   TYPE c,
        lv_total_amt(32) TYPE c.

  DATA: lv_deli(1) TYPE c value cl_bcs_convert=>gc_tab,
        lv_rc      TYPE i.
  DATA: BEGIN OF ls_hex,
          tab TYPE x,
        END   OF ls_hex.

  FIELD-SYMBOLS: <fs> .

  CONSTANTS: c_n_09(2) TYPE n VALUE 09.

  TYPES: lv_data(9999) TYPE c,
         ty            TYPE TABLE OF lv_data.
  DATA: lt_clip TYPE ty WITH HEADER LINE.

  DATA: l_file     LIKE rlgrap-filename.

  CREATE OBJECT excel 'EXCEL.APPLICATION'.

  CALL METHOD OF excel 'WORKBOOKS' = books.

 

  SET PROPERTY OF excel 'Visible' = 1.


  CALL METHOD OF books 'OPEN'
    EXPORTING
      #1 = l_file.


  CALL METHOD OF excel 'Worksheets' = sheet
    EXPORTING
    #1 = 1.


  CALL METHOD OF sheet 'Activate'.

  lv_cnt = 4.

  LOOP AT gt_alvmain.

    lv_cnt = lv_cnt + 1.
***  30개 컬럼 탭으로 붙이기
    CONCATENATE gt_alvmain-posid
                gt_alvmain-post1
                INTO lt_clip
                SEPARATED BY lv_deli.

*'00000000'  -> ''.
    REPLACE ALL OCCURRENCES OF '00000000' IN lt_clip WITH ''.

    APPEND lt_clip.
    CLEAR lt_clip.

  ENDLOOP.

  CALL METHOD cl_gui_frontend_services=>clipboard_export
    IMPORTING
      data                 = lt_clip[]
    CHANGING
      rc                   = lv_rc
    EXCEPTIONS
      cntl_error           = 1
      error_no_gui         = 2
      not_supported_by_gui = 3
      OTHERS               = 4.

  CALL METHOD OF excel 'Cells' = e_cell1
    EXPORTING
      #1 = 5
      #2 = 1.


  CALL METHOD OF excel 'Cells' = e_cell2
    EXPORTING
      #1 = lv_cnt
      #2 = 30.


  CALL METHOD OF excel 'Range' = e_range
    EXPORTING
      #1 = e_cell1
      #2 = e_cell2.

  CALL METHOD OF e_range 'Select'.

  CALL METHOD OF sheet 'Paste'.

***----------아래 방식은 속도가 느림
  CALL METHOD OF excel 'CELLS' = cell
    EXPORTING
    #1 = 5
    #2 = 1.

  SET PROPERTY OF cell 'VALUE' = p_value.

'만사가귀찮아' 카테고리의 다른 글

ABAP Percentage Conversion Rule  (0) 2024.05.14
ABAP TAB CRLF  (0) 2022.06.08
ALV Underline  (1) 2022.05.31
SAP HANA SQL WITH ROW_NUMBER  (0) 2022.03.25
Shadow Stack 비활성화(2021.10.31)  (0) 2021.10.31