본문 바로가기

Abap

[Abap] Excel 양식 다운로드

 

* 셀 서식 및 색상 등 엑셀 원본 그대로 다운로드 가능.

 

Tcode - SMW0  에서 엑셀 데이터를 등록한후에 사용.

이진수로 등록.

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

Top.

  "EXCEL DOWN.
TYPE-POOLS OLE2,ICON.

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

Main.

  AT SELECTION-SCREEN.
  CASE sscrfields-ucomm.
    WHEN 'FC01'.
      PERFORM TEMPLETDOWNLOAD USING sy-repid.
  ENDCASE.

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

Perform.

  FORM templetdownload  USING    l_srtfd.

  DATAls_wwwdata_item LIKE wwwdatatab,
        l_temp_file     LIKE w3file-name VALUE '~wwwtmp',
        l_filename      LIKE w3file-name,
        l_rc            TYPE i,
        l_relid         TYPE w3_relid VALUE 'MI',
        l_objid         TYPE w3objid,
        gv_file         LIKE rlgrap-filename,        " FILE NAME
        gv_file1        TYPE string ,        "
        gv_file2        TYPE string,
        gv_file3        TYPE string.

  CLEAR l_objid.

  CALL FUNCTION 'ZPBFIF2030'
    EXPORTING
      i_filter   ''
      i_title    ''
      i_def_path ''
    IMPORTING
      e_filename gv_file2
      e_path     gv_file1
      e_fullpath gv_file3.

  IF gv_file3 IS NOT INITIAL.
    gv_file gv_file3.

    l_objid l_srtfd.

    SELECT SINGLE *
      INTO CORRESPONDING FIELDS OF ls_wwwdata_item
      FROM wwwdata
     WHERE relid l_relid
       AND objid l_objid.

    CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
      EXPORTING
        key         ls_wwwdata_item
        destination gv_file
      CHANGING
        temp        l_temp_file.

    l_filename l_temp_file.
    SHIFT l_temp_file RIGHT.
    l_temp_file(1'"'.
    CONCATENATE l_temp_file '"' INTO l_temp_file.
    CALL FUNCTION 'WS_EXECUTE'
      EXPORTING
        commandline        l_temp_file
        program            'EXCEL'
      EXCEPTIONS
        frontend_error     1
        no_batch           2
        prog_not_found     3
        illegal_option     4
        gui_refuse_execute 5
        OTHERS             6.

  ENDIF.


ENDFORM.                    " TEMPLETDOWNLOAD

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

Function.

  FUNCTION ZPBFIF2030.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     REFERENCE(I_FILTER)
*"     REFERENCE(I_TITLE)
*"     REFERENCE(I_DEF_PATH)
*"  EXPORTING
*"     REFERENCE(E_FILENAME)
*"     REFERENCE(E_PATH)
*"     REFERENCE(E_FULLPATH)
*"----------------------------------------------------------------------
  DATA L_DEF_PATH TYPE STRING,
         L_RC       TYPE I,
         L_MASK     TYPE STRING,
         L_TITLE    TYPE STRING,
         L_TITLE1   TYPE STRING,
         L_FILES    TYPE FILETABLE.

*... set filter
  IF I_FILTER IS INITIAL.
*    MOVE : 'Excel-Sheet (*.xls)|*.xls|*.*|*.*||' TO L_MASK.
    MOVE 'Excel-Sheet (*.xlsx)|*.xlsx|*.*|*.*||' TO L_MASK.
  ELSE.
    MOVE I_FILTER TO L_MASK.
  ENDIF.

*... set default path
  IF I_DEF_PATH IS INITIAL.
    MOVE 'FILE' TO L_DEF_PATH.
  ELSE.
    MOVE I_DEF_PATH TO L_DEF_PATH.
  ENDIF.

*... set title
  IF I_TITLE IS INITIAL.
*    MOVE : '*.xls'TO  L_TITLE.
    MOVE '*.xlsx'TO  L_TITLE.

  ELSE.
    MOVE I_TITLE TO L_TITLE.
  ENDIF.


  CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
    EXPORTING
      WINDOW_TITLE         L_TITLE1
      DEFAULT_EXTENSION    L_TITLE
      DEFAULT_FILE_NAME    L_DEF_PATH
      FILE_FILTER          L_MASK
    CHANGING
      FILENAME             E_FILENAME
      PATH                 E_PATH
      FULLPATH             E_FULLPATH
    EXCEPTIONS
      CNTL_ERROR           1
      ERROR_NO_GUI         2
      NOT_SUPPORTED_BY_GUI 3
      OTHERS               4.




ENDFUNCTION.