<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Download to Excel using METHODS in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/download-to-excel-using-methods/m-p/1700029#M306930</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;chk a sample pgm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;  Include           YHCON9051INCL                                    *
*&amp;amp;---------------------------------------------------------------------*

*---------------------------------------------------------------------*
*   SUBROUTINES                                                       *
*---------------------------------------------------------------------*

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  F_CHECK_LOCAL_FILE_EXIST
*&amp;amp;---------------------------------------------------------------------*
*       CHECK WETHER LOCAL FILE EXIST
*----------------------------------------------------------------------*
*      --&amp;gt;P_FILE LOCAL FILE NAME
*----------------------------------------------------------------------*
FORM f_check_local_file_exist  USING    p_file.

  DATA: loc_filename TYPE string,
        loc_flag     TYPE abap_bool.


  loc_filename = p_file.

  IF loc_filename Eq ' '.
    MESSAGE e053(8i) .
  ENDIF.

  CALL METHOD cl_gui_frontend_services=&amp;gt;file_exist
    EXPORTING
      file                 = loc_filename
    RECEIVING
      result               = loc_flag
    EXCEPTIONS
      cntl_error           = 1
      error_no_gui         = 2
      wrong_parameter      = 3
      not_supported_by_gui = 4
      OTHERS               = 5.

  IF sy-subrc NE wl_yes.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  IF loc_flag NE wl_true.
    MESSAGE e000(8i) WITH text-020 p_file.
  ENDIF.


ENDFORM.                    " F_CHECK_LOCAL_FILE_EXIST
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  F_UPLOAD_DATA_FROM_LOCAL_FILE
*&amp;amp;---------------------------------------------------------------------*
*       GET DATA FROM EXCEL FILE AND CONVERT TO SAP FORMAT
*----------------------------------------------------------------------*
*      --&amp;gt;P_FILE LOCAL FILE NAME
*----------------------------------------------------------------------*
FORM f_upload_data_from_local_file  USING    p_file.

  DATA: loc_filename TYPE rlgrap-filename,
        int_raw      TYPE truxs_t_text_data.

  loc_filename = p_file.

  CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
    EXPORTING
      i_field_seperator    = 'X'
      i_line_header        = 'X'
      i_tab_raw_data       = int_raw
      i_filename           = loc_filename
    TABLES
      i_tab_converted_data = int_content_lfile
    EXCEPTIONS
      conversion_failed    = 1
      OTHERS               = 2.

  IF sy-subrc NE wl_yes.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
         WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.


  CLEAR : int_record , int_content_lfile ,int_record[].

  LOOP AT int_content_lfile.
* Moving the records to the Internal table for process
    int_record-adm_area = int_content_lfile-adm_area .
    int_record-dsrd_loc = int_content_lfile-dsrd_loc.
    int_record-fl_ind   = int_content_lfile-fl_ind.
    int_record-loc_loc  = int_content_lfile-loc_loc.
    int_record-loc_desc = int_content_lfile-loc_desc .
    APPEND int_record.
    CLEAR  int_record.
  ENDLOOP.

ENDFORM.                    " F_UPLOAD_DATA_FROM_LOCAL_FILE
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  GET_FILE_OPEN_DIALOG
*&amp;amp;---------------------------------------------------------------------*
*      F4 TO FETCH THE FILE
*----------------------------------------------------------------------*
FORM get_file_open_dialog .

  DATA: lint_filetable TYPE filetable,
        ls_filetable   TYPE file_table,
        li_count TYPE i.

  CALL METHOD cl_gui_frontend_services=&amp;gt;file_open_dialog
    EXPORTING
       window_title            = 'Please select the file'
       default_extension       = '*.XLS'
*      DEFAULT_FILENAME        =
*      FILE_FILTER             =
*      INITIAL_DIRECTORY       =
       multiselection          = ''
*      WITH_ENCODING           =
     CHANGING
       file_table              = lint_filetable
       rc                      = li_count
*      USER_ACTION             =
*      FILE_ENCODING           =
     EXCEPTIONS
       file_open_dialog_failed = 1
       cntl_error              = 2
       error_no_gui            = 3
       not_supported_by_gui    = 4
       OTHERS                  = 5.
  IF sy-subrc &amp;lt;&amp;gt; 0.

  ELSE.
    READ TABLE lint_filetable INDEX 1 INTO ls_filetable.
    IF sy-subrc EQ wl_yes.
      p_lcl = ls_filetable-filename.
    ENDIF.
  ENDIF.

ENDFORM.                    " GET_FILE_OPEN_DIALOG

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  F_UPLOAD_DATA
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM f_upload_data .

* To move the data to Internal table fields.
  PERFORM data_transfer.

ENDFORM.                    " F_UPLOAD_DATA
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  F_UPDATE_TABLE
*&amp;amp;---------------------------------------------------------------------*
*       ZTABLE UPDATION
*----------------------------------------------------------------------*
FORM f_update_table .

  DATA:   wl_sess          TYPE c,
          loc_wf_loc_desc  TYPE  zhofs_loc_desc.

  REFRESH : int_caltrscc, int_caltrerr .

  LOOP AT int_record.
** Moving the data as desired for the Z -table updation
*  PERFORM MOVE_DATA.
    MOVE :
       int_record-adm_area        TO   loc_wf_loc_desc-adm_area  ,
       int_record-dsrd_loc        TO   loc_wf_loc_desc-dsrd_loc ,
       int_record-fl_ind          TO   loc_wf_loc_desc-fl_ind    ,
       int_record-loc_loc         TO   loc_wf_loc_desc-loc_loc   ,
       int_record-loc_desc        TO   loc_wf_loc_desc-loc_desc .

* Inserting the data to the Table ZHOFS_LOT_TABLE

    INSERT zhofs_loc_desc FROM loc_wf_loc_desc .

    IF sy-subrc EQ wl_yes.
*     Entry Inserted Correctly
      wf_suc = wf_suc + 1.
      int_caltrscc-adm_area   =  int_record-adm_area .
      int_caltrscc-dsrd_loc   =  int_record-dsrd_loc.
      int_caltrscc-fl_ind     =  int_record-fl_ind.
      int_caltrscc-loc_loc    =  int_record-loc_loc.
      int_caltrscc-reason  =  text-007.
      APPEND int_caltrscc.
      CLEAR  int_caltrscc.

    ELSE.
*     Entry Not Inserted
      wf_err = wf_err + 1.
      int_caltrerr-adm_area   =  int_record-adm_area .
      int_caltrerr-dsrd_loc   =  int_record-dsrd_loc.
      int_caltrerr-fl_ind     =  int_record-fl_ind.
      int_caltrerr-loc_loc    =  int_record-loc_loc.
      int_caltrerr-reason  =  text-006.
      APPEND int_caltrerr.
      CLEAR  int_caltrerr.
    ENDIF.

    CLEAR :  loc_wf_loc_desc-loc_desc,int_record .
  ENDLOOP.

ENDFORM.                    " F_UPDATE_TABLE

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  DATA_TRANSFER
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM data_transfer .

  DATA : loc_int_loc_desc TYPE TABLE OF zhofs_loc_desc WITH HEADER LINE.
  CLEAR: int_record.

  LOOP AT int_record.

    wf_rec =  wf_rec + 1.
*  To Check Whether an already any records exists
    SELECT *
    FROM zhofs_loc_desc
    INTO TABLE loc_int_loc_desc
    WHERE
      adm_area = int_record-adm_area AND
      dsrd_loc  = int_record-dsrd_loc AND
      loc_loc = int_record-loc_loc.

    IF sy-subrc EQ wl_yes.
*     The entry already exist in the Table
      int_error-adm_area   =  int_record-adm_area.
      int_error-dsrd_loc   =  int_record-dsrd_loc.
      int_error-fl_ind      = int_record-fl_ind .
      int_error-loc_loc  = int_record-loc_loc.
      int_error-message =  text-005.
      APPEND int_error.
      CLEAR : int_error.
      wf_err_rec = wf_err_rec + 1.
      CONTINUE.
    ELSE.
      wf_cor_rec = wf_cor_rec + 1 .
    ENDIF.
    CLEAR: int_record.
  ENDLOOP.

  CLEAR: int_record .

  LOOP AT int_error.

    READ TABLE int_record
    WITH KEY
         adm_area = int_error-adm_area
         dsrd_loc = int_error-dsrd_loc
         loc_loc  = int_error-loc_loc .

    IF sy-subrc EQ wl_yes.
*     Delete the duplicate entries
      DELETE int_record
      WHERE
       adm_area = int_error-adm_area AND
       dsrd_loc    = int_error-dsrd_loc AND
       fl_ind = int_error-fl_ind AND
       loc_loc = int_error-loc_loc .
    ENDIF.

    CLEAR int_error.
  ENDLOOP.

ENDFORM.                    " DATA_TRANSFER
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  f_check_data
*&amp;amp;---------------------------------------------------------------------*
*       Check DATA
*----------------------------------------------------------------------*
FORM f_check_data .
*ERROR FULL DATA
  IF wf_err_rec GT 0.
    WRITE:/060(1)   sy-vline, text-000 COLOR 6,sy-vline.
    LOOP AT int_error.
      FORMAT RESET.
      FORMAT COLOR  6 .
      WRITE:/001(1)   sy-vline,
             002(3)   int_error-adm_area ,
             005(1)   sy-vline  CENTERED ,
             006(4)   int_error-dsrd_loc ,
             010(1)   sy-vline  CENTERED ,
             011(1)    int_error-fl_ind  ,
             012(1)   sy-vline  CENTERED,
             013(4)   int_error-loc_loc  ,
             017(1)   sy-vline  CENTERED ,
             018(25)  int_error-message  ,
             043(1)   sy-vline  CENTERED .
      FORMAT COLOR OFF .
    ENDLOOP.
    WRITE:/001(25)  text-002,wf_err_rec.
    WRITE:/001(25)  text-003,wf_rec .
  ENDIF.
*SUCCESSFULL DATA
  IF wf_cor_rec GT 0.
    WRITE:/060(1)   sy-vline, text-001 COLOR 1 ,sy-vline.
    LOOP AT int_record.
      FORMAT RESET.
      FORMAT COLOR 1 ON .
      WRITE:/001(1)   sy-vline,
             002(3)   int_record-adm_area ,
             005(1)   sy-vline  CENTERED ,
             006(4)   int_record-dsrd_loc ,
             010(1)   sy-vline  CENTERED ,
             011(1)   int_record-fl_ind  ,
             012(1)   sy-vline  CENTERED,
             013(4)   int_record-loc_loc  ,
             017(1)   sy-vline  CENTERED ,
             018(25)  'PROPER ENTRY' ,
            043(1)   sy-vline  CENTERED .
      FORMAT COLOR OFF .
    ENDLOOP.
    WRITE:/001(25)  text-002,wf_cor_rec .
    WRITE:/001(25)  text-003,wf_rec .

  ENDIF.
ENDFORM.                    " f_check_data
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  f_check_db_data
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM f_check_db_data .
*ERROR FULL DATA - WHILE INSERTING TO TABLE
  IF wf_err GT 0.
    WRITE:/060(1)   sy-vline,text-004 COLOR 6,sy-vline.
    LOOP AT  int_caltrerr.
      FORMAT RESET.
      FORMAT COLOR  6 .
      WRITE:/001(1)   sy-vline,
             002(3)    int_caltrerr-adm_area ,
             005(1)   sy-vline  CENTERED ,
             006(4)    int_caltrerr-dsrd_loc ,
             010(1)   sy-vline  CENTERED ,
             011(1)    int_caltrerr-fl_ind  ,
             012(1)   sy-vline  CENTERED,
             013(4)    int_caltrerr-loc_loc  ,
             017(1)   sy-vline  CENTERED ,
             018(25)   int_caltrerr-reason  ,
             043(1)   sy-vline  CENTERED .
      FORMAT COLOR OFF .
    ENDLOOP.
    WRITE:/001(25)  text-002,wf_err.
    WRITE:/001(25)  text-003,wf_rec .
  ENDIF.

*    ERROR BY DUPLICATION
  IF wf_err_rec GT 0.
    WRITE:/060(1)   sy-vline,text-000 COLOR 6,sy-vline.
    LOOP AT int_error.
      FORMAT RESET.
      FORMAT COLOR  6 .
      WRITE:/001(1)   sy-vline,
             002(3)   int_error-adm_area ,
             005(1)   sy-vline  CENTERED ,
             006(4)   int_error-dsrd_loc ,
             010(1)   sy-vline  CENTERED ,
             011(1)    int_error-fl_ind  ,
             012(1)   sy-vline  CENTERED,
             013(4)   int_error-loc_loc  ,
             017(1)   sy-vline  CENTERED ,
             018(25)  int_error-message  ,
             043(1)   sy-vline  CENTERED .
      FORMAT COLOR OFF .
    ENDLOOP.
    WRITE:/001(25)  text-002,wf_err_rec.
    WRITE:/001(25)  text-003,wf_rec .
  ENDIF.

*SUCCESSFULL DATA
  IF wf_suc GT 0.
    WRITE:/060(1)   sy-vline,text-001 COLOR 1 ,sy-vline.
    LOOP AT int_caltrscc.
      FORMAT RESET.
      FORMAT COLOR 1 ON .
      WRITE:/001(1)   sy-vline,
             002(3)   int_caltrscc-adm_area ,
             005(1)   sy-vline  CENTERED ,
             006(4)  int_caltrscc-dsrd_loc ,
             010(1)   sy-vline  CENTERED ,
             011(1)   int_caltrscc-fl_ind  ,
             012(1)   sy-vline  CENTERED,
             013(4)   int_caltrscc-loc_loc  ,
             017(1)   sy-vline  CENTERED ,
             018(25)  int_caltrscc-reason ,
            043(1)   sy-vline  CENTERED .
      FORMAT COLOR OFF .
    ENDLOOP.
    WRITE:/001(25)  text-002,wf_cor_rec .
    WRITE:/001(25)  text-003,wf_rec .
  ENDIF.

ENDFORM.                    " f_check_db_data&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;rgds&lt;/P&gt;&lt;P&gt;Anver&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if hlped pls mark points&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 07 Nov 2006 08:27:21 GMT</pubDate>
    <dc:creator>anversha_s</dc:creator>
    <dc:date>2006-11-07T08:27:21Z</dc:date>
    <item>
      <title>Download to Excel using METHODS</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/download-to-excel-using-methods/m-p/1700028#M306929</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I want to change the Worksheet name which in default being created as Sheet1/ Sheet2/ Sheet3 on creation of Excel file while downloading using Objects. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How should I change the name of Sheet1/ Sheet2/ Sheet3 to my requirement. Attached the coding part. Please help me out in finding the place where I should rename it using which statement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM excel_download.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  gv_step = 'Starting Excel'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CREATE OBJECT gw_excel 'EXCEL.APPLICATION'.&lt;/P&gt;&lt;P&gt;  PERFORM xls_error_hdl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gw_excel 'VISIBLE' = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  GET PROPERTY OF gw_excel 'WORKBOOKS' = gw_wbooks.&lt;/P&gt;&lt;P&gt;  CALL METHOD OF gw_wbooks 'Add'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Create Excel Sheet&lt;/P&gt;&lt;P&gt;  CALL METHOD OF gw_excel 'Worksheets' = gw_worksheet&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      #1 = 1.&lt;/P&gt;&lt;P&gt;  CALL METHOD OF gw_wbooks 'Activate'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gw_wbooks 'Name' = 'Sheet1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD OF gw_wbooks 'OPEN' = gw_wbooks&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      #1 = gv_fname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD OF gw_wbooks 'Activate' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Download to Worksheet 1.&lt;/P&gt;&lt;P&gt;  GET PROPERTY OF gw_excel 'Worksheets' = gw_worksheet&lt;/P&gt;&lt;P&gt;  exporting #1 = 'Sheet1'.      "S4M1MR&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; exporting #1 = 'Appd_Sites'.   "S4M1MR&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM xls_error_hdl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD OF gw_worksheet 'Activate' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  gv_step = 'Adding data to Excel'.&lt;/P&gt;&lt;P&gt;  gv_row  = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT gi_yps_down_tab1 INTO gw_yps_grid2.&lt;/P&gt;&lt;P&gt;    CLEAR gw_yps_common-anln1.&lt;/P&gt;&lt;P&gt;    gv_row = gv_row + 1.&lt;/P&gt;&lt;P&gt;    gv_col = 2.&lt;/P&gt;&lt;P&gt;    DO 4 TIMES.&lt;/P&gt;&lt;P&gt;      ASSIGN COMPONENT sy-index OF STRUCTURE gw_yps_grid2 TO &amp;lt;comp&amp;gt;.&lt;/P&gt;&lt;P&gt;      PERFORM fill_cell USING gv_row gv_col  &amp;lt;comp&amp;gt;.&lt;/P&gt;&lt;P&gt;      gv_col = gv_col + 1.&lt;/P&gt;&lt;P&gt;    ENDDO.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Download to Worksheet 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  GET PROPERTY OF gw_excel 'Worksheets' = gw_worksheet&lt;/P&gt;&lt;P&gt;  exporting #1 = 'Sheet2'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; exporting #1 = 'Appd Sites'.   "S4M1MR&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM xls_error_hdl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD OF gw_worksheet 'Activate' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  gv_step = 'Adding data to Excel'.&lt;/P&gt;&lt;P&gt;  gv_row  = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LOOP AT gi_yps_down_tab2 INTO gw_yps_common.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT gi_yps_down_tab2 INTO gw_exclusion.&lt;/P&gt;&lt;P&gt;    PERFORM conversion.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Download to Worksheet 3.&lt;/P&gt;&lt;P&gt;  GET PROPERTY OF gw_excel 'Worksheets' = gw_worksheet&lt;/P&gt;&lt;P&gt;  exporting #1 = 'Sheet3'.&lt;/P&gt;&lt;P&gt;  PERFORM xls_error_hdl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD OF gw_worksheet 'Activate' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  gv_step = 'Adding data to Excel'.&lt;/P&gt;&lt;P&gt;  gv_row  = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LOOP AT gi_yps_down_tab3 INTO gw_yps_common.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT gi_yps_down_tab3 INTO gw_exclusion.&lt;/P&gt;&lt;P&gt;    PERFORM conversion.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Download to Worksheet 4.&lt;/P&gt;&lt;P&gt;  CALL METHOD OF gw_excel 'Sheets' = gw_worksheet.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Add new workbook (create a file)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL METHOD OF gw_worksheet 'Add'.&lt;/P&gt;&lt;P&gt;  FREE OBJECT gw_worksheet.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  GET PROPERTY OF gw_excel 'Worksheets' = gw_worksheet&lt;/P&gt;&lt;P&gt;  exporting #1 = 'Sheet4'.&lt;/P&gt;&lt;P&gt;  PERFORM xls_error_hdl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD OF gw_worksheet 'Activate' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  gv_step = 'Adding data to Excel'.&lt;/P&gt;&lt;P&gt;  gv_row  = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LOOP AT gi_yps_down_tab4 INTO gw_yps_common.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT gi_yps_down_tab4 INTO gw_exclusion.&lt;/P&gt;&lt;P&gt;    PERFORM conversion.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To Save the Book after downloading.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM save_excel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " EXCEL_DOWNLOAD&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt; Thanks in advance&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Nov 2006 08:25:53 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/download-to-excel-using-methods/m-p/1700028#M306929</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-11-07T08:25:53Z</dc:date>
    </item>
    <item>
      <title>Re: Download to Excel using METHODS</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/download-to-excel-using-methods/m-p/1700029#M306930</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;chk a sample pgm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;  Include           YHCON9051INCL                                    *
*&amp;amp;---------------------------------------------------------------------*

*---------------------------------------------------------------------*
*   SUBROUTINES                                                       *
*---------------------------------------------------------------------*

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  F_CHECK_LOCAL_FILE_EXIST
*&amp;amp;---------------------------------------------------------------------*
*       CHECK WETHER LOCAL FILE EXIST
*----------------------------------------------------------------------*
*      --&amp;gt;P_FILE LOCAL FILE NAME
*----------------------------------------------------------------------*
FORM f_check_local_file_exist  USING    p_file.

  DATA: loc_filename TYPE string,
        loc_flag     TYPE abap_bool.


  loc_filename = p_file.

  IF loc_filename Eq ' '.
    MESSAGE e053(8i) .
  ENDIF.

  CALL METHOD cl_gui_frontend_services=&amp;gt;file_exist
    EXPORTING
      file                 = loc_filename
    RECEIVING
      result               = loc_flag
    EXCEPTIONS
      cntl_error           = 1
      error_no_gui         = 2
      wrong_parameter      = 3
      not_supported_by_gui = 4
      OTHERS               = 5.

  IF sy-subrc NE wl_yes.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  IF loc_flag NE wl_true.
    MESSAGE e000(8i) WITH text-020 p_file.
  ENDIF.


ENDFORM.                    " F_CHECK_LOCAL_FILE_EXIST
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  F_UPLOAD_DATA_FROM_LOCAL_FILE
*&amp;amp;---------------------------------------------------------------------*
*       GET DATA FROM EXCEL FILE AND CONVERT TO SAP FORMAT
*----------------------------------------------------------------------*
*      --&amp;gt;P_FILE LOCAL FILE NAME
*----------------------------------------------------------------------*
FORM f_upload_data_from_local_file  USING    p_file.

  DATA: loc_filename TYPE rlgrap-filename,
        int_raw      TYPE truxs_t_text_data.

  loc_filename = p_file.

  CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
    EXPORTING
      i_field_seperator    = 'X'
      i_line_header        = 'X'
      i_tab_raw_data       = int_raw
      i_filename           = loc_filename
    TABLES
      i_tab_converted_data = int_content_lfile
    EXCEPTIONS
      conversion_failed    = 1
      OTHERS               = 2.

  IF sy-subrc NE wl_yes.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
         WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.


  CLEAR : int_record , int_content_lfile ,int_record[].

  LOOP AT int_content_lfile.
* Moving the records to the Internal table for process
    int_record-adm_area = int_content_lfile-adm_area .
    int_record-dsrd_loc = int_content_lfile-dsrd_loc.
    int_record-fl_ind   = int_content_lfile-fl_ind.
    int_record-loc_loc  = int_content_lfile-loc_loc.
    int_record-loc_desc = int_content_lfile-loc_desc .
    APPEND int_record.
    CLEAR  int_record.
  ENDLOOP.

ENDFORM.                    " F_UPLOAD_DATA_FROM_LOCAL_FILE
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  GET_FILE_OPEN_DIALOG
*&amp;amp;---------------------------------------------------------------------*
*      F4 TO FETCH THE FILE
*----------------------------------------------------------------------*
FORM get_file_open_dialog .

  DATA: lint_filetable TYPE filetable,
        ls_filetable   TYPE file_table,
        li_count TYPE i.

  CALL METHOD cl_gui_frontend_services=&amp;gt;file_open_dialog
    EXPORTING
       window_title            = 'Please select the file'
       default_extension       = '*.XLS'
*      DEFAULT_FILENAME        =
*      FILE_FILTER             =
*      INITIAL_DIRECTORY       =
       multiselection          = ''
*      WITH_ENCODING           =
     CHANGING
       file_table              = lint_filetable
       rc                      = li_count
*      USER_ACTION             =
*      FILE_ENCODING           =
     EXCEPTIONS
       file_open_dialog_failed = 1
       cntl_error              = 2
       error_no_gui            = 3
       not_supported_by_gui    = 4
       OTHERS                  = 5.
  IF sy-subrc &amp;lt;&amp;gt; 0.

  ELSE.
    READ TABLE lint_filetable INDEX 1 INTO ls_filetable.
    IF sy-subrc EQ wl_yes.
      p_lcl = ls_filetable-filename.
    ENDIF.
  ENDIF.

ENDFORM.                    " GET_FILE_OPEN_DIALOG

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  F_UPLOAD_DATA
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM f_upload_data .

* To move the data to Internal table fields.
  PERFORM data_transfer.

ENDFORM.                    " F_UPLOAD_DATA
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  F_UPDATE_TABLE
*&amp;amp;---------------------------------------------------------------------*
*       ZTABLE UPDATION
*----------------------------------------------------------------------*
FORM f_update_table .

  DATA:   wl_sess          TYPE c,
          loc_wf_loc_desc  TYPE  zhofs_loc_desc.

  REFRESH : int_caltrscc, int_caltrerr .

  LOOP AT int_record.
** Moving the data as desired for the Z -table updation
*  PERFORM MOVE_DATA.
    MOVE :
       int_record-adm_area        TO   loc_wf_loc_desc-adm_area  ,
       int_record-dsrd_loc        TO   loc_wf_loc_desc-dsrd_loc ,
       int_record-fl_ind          TO   loc_wf_loc_desc-fl_ind    ,
       int_record-loc_loc         TO   loc_wf_loc_desc-loc_loc   ,
       int_record-loc_desc        TO   loc_wf_loc_desc-loc_desc .

* Inserting the data to the Table ZHOFS_LOT_TABLE

    INSERT zhofs_loc_desc FROM loc_wf_loc_desc .

    IF sy-subrc EQ wl_yes.
*     Entry Inserted Correctly
      wf_suc = wf_suc + 1.
      int_caltrscc-adm_area   =  int_record-adm_area .
      int_caltrscc-dsrd_loc   =  int_record-dsrd_loc.
      int_caltrscc-fl_ind     =  int_record-fl_ind.
      int_caltrscc-loc_loc    =  int_record-loc_loc.
      int_caltrscc-reason  =  text-007.
      APPEND int_caltrscc.
      CLEAR  int_caltrscc.

    ELSE.
*     Entry Not Inserted
      wf_err = wf_err + 1.
      int_caltrerr-adm_area   =  int_record-adm_area .
      int_caltrerr-dsrd_loc   =  int_record-dsrd_loc.
      int_caltrerr-fl_ind     =  int_record-fl_ind.
      int_caltrerr-loc_loc    =  int_record-loc_loc.
      int_caltrerr-reason  =  text-006.
      APPEND int_caltrerr.
      CLEAR  int_caltrerr.
    ENDIF.

    CLEAR :  loc_wf_loc_desc-loc_desc,int_record .
  ENDLOOP.

ENDFORM.                    " F_UPDATE_TABLE

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  DATA_TRANSFER
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM data_transfer .

  DATA : loc_int_loc_desc TYPE TABLE OF zhofs_loc_desc WITH HEADER LINE.
  CLEAR: int_record.

  LOOP AT int_record.

    wf_rec =  wf_rec + 1.
*  To Check Whether an already any records exists
    SELECT *
    FROM zhofs_loc_desc
    INTO TABLE loc_int_loc_desc
    WHERE
      adm_area = int_record-adm_area AND
      dsrd_loc  = int_record-dsrd_loc AND
      loc_loc = int_record-loc_loc.

    IF sy-subrc EQ wl_yes.
*     The entry already exist in the Table
      int_error-adm_area   =  int_record-adm_area.
      int_error-dsrd_loc   =  int_record-dsrd_loc.
      int_error-fl_ind      = int_record-fl_ind .
      int_error-loc_loc  = int_record-loc_loc.
      int_error-message =  text-005.
      APPEND int_error.
      CLEAR : int_error.
      wf_err_rec = wf_err_rec + 1.
      CONTINUE.
    ELSE.
      wf_cor_rec = wf_cor_rec + 1 .
    ENDIF.
    CLEAR: int_record.
  ENDLOOP.

  CLEAR: int_record .

  LOOP AT int_error.

    READ TABLE int_record
    WITH KEY
         adm_area = int_error-adm_area
         dsrd_loc = int_error-dsrd_loc
         loc_loc  = int_error-loc_loc .

    IF sy-subrc EQ wl_yes.
*     Delete the duplicate entries
      DELETE int_record
      WHERE
       adm_area = int_error-adm_area AND
       dsrd_loc    = int_error-dsrd_loc AND
       fl_ind = int_error-fl_ind AND
       loc_loc = int_error-loc_loc .
    ENDIF.

    CLEAR int_error.
  ENDLOOP.

ENDFORM.                    " DATA_TRANSFER
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  f_check_data
*&amp;amp;---------------------------------------------------------------------*
*       Check DATA
*----------------------------------------------------------------------*
FORM f_check_data .
*ERROR FULL DATA
  IF wf_err_rec GT 0.
    WRITE:/060(1)   sy-vline, text-000 COLOR 6,sy-vline.
    LOOP AT int_error.
      FORMAT RESET.
      FORMAT COLOR  6 .
      WRITE:/001(1)   sy-vline,
             002(3)   int_error-adm_area ,
             005(1)   sy-vline  CENTERED ,
             006(4)   int_error-dsrd_loc ,
             010(1)   sy-vline  CENTERED ,
             011(1)    int_error-fl_ind  ,
             012(1)   sy-vline  CENTERED,
             013(4)   int_error-loc_loc  ,
             017(1)   sy-vline  CENTERED ,
             018(25)  int_error-message  ,
             043(1)   sy-vline  CENTERED .
      FORMAT COLOR OFF .
    ENDLOOP.
    WRITE:/001(25)  text-002,wf_err_rec.
    WRITE:/001(25)  text-003,wf_rec .
  ENDIF.
*SUCCESSFULL DATA
  IF wf_cor_rec GT 0.
    WRITE:/060(1)   sy-vline, text-001 COLOR 1 ,sy-vline.
    LOOP AT int_record.
      FORMAT RESET.
      FORMAT COLOR 1 ON .
      WRITE:/001(1)   sy-vline,
             002(3)   int_record-adm_area ,
             005(1)   sy-vline  CENTERED ,
             006(4)   int_record-dsrd_loc ,
             010(1)   sy-vline  CENTERED ,
             011(1)   int_record-fl_ind  ,
             012(1)   sy-vline  CENTERED,
             013(4)   int_record-loc_loc  ,
             017(1)   sy-vline  CENTERED ,
             018(25)  'PROPER ENTRY' ,
            043(1)   sy-vline  CENTERED .
      FORMAT COLOR OFF .
    ENDLOOP.
    WRITE:/001(25)  text-002,wf_cor_rec .
    WRITE:/001(25)  text-003,wf_rec .

  ENDIF.
ENDFORM.                    " f_check_data
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  f_check_db_data
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM f_check_db_data .
*ERROR FULL DATA - WHILE INSERTING TO TABLE
  IF wf_err GT 0.
    WRITE:/060(1)   sy-vline,text-004 COLOR 6,sy-vline.
    LOOP AT  int_caltrerr.
      FORMAT RESET.
      FORMAT COLOR  6 .
      WRITE:/001(1)   sy-vline,
             002(3)    int_caltrerr-adm_area ,
             005(1)   sy-vline  CENTERED ,
             006(4)    int_caltrerr-dsrd_loc ,
             010(1)   sy-vline  CENTERED ,
             011(1)    int_caltrerr-fl_ind  ,
             012(1)   sy-vline  CENTERED,
             013(4)    int_caltrerr-loc_loc  ,
             017(1)   sy-vline  CENTERED ,
             018(25)   int_caltrerr-reason  ,
             043(1)   sy-vline  CENTERED .
      FORMAT COLOR OFF .
    ENDLOOP.
    WRITE:/001(25)  text-002,wf_err.
    WRITE:/001(25)  text-003,wf_rec .
  ENDIF.

*    ERROR BY DUPLICATION
  IF wf_err_rec GT 0.
    WRITE:/060(1)   sy-vline,text-000 COLOR 6,sy-vline.
    LOOP AT int_error.
      FORMAT RESET.
      FORMAT COLOR  6 .
      WRITE:/001(1)   sy-vline,
             002(3)   int_error-adm_area ,
             005(1)   sy-vline  CENTERED ,
             006(4)   int_error-dsrd_loc ,
             010(1)   sy-vline  CENTERED ,
             011(1)    int_error-fl_ind  ,
             012(1)   sy-vline  CENTERED,
             013(4)   int_error-loc_loc  ,
             017(1)   sy-vline  CENTERED ,
             018(25)  int_error-message  ,
             043(1)   sy-vline  CENTERED .
      FORMAT COLOR OFF .
    ENDLOOP.
    WRITE:/001(25)  text-002,wf_err_rec.
    WRITE:/001(25)  text-003,wf_rec .
  ENDIF.

*SUCCESSFULL DATA
  IF wf_suc GT 0.
    WRITE:/060(1)   sy-vline,text-001 COLOR 1 ,sy-vline.
    LOOP AT int_caltrscc.
      FORMAT RESET.
      FORMAT COLOR 1 ON .
      WRITE:/001(1)   sy-vline,
             002(3)   int_caltrscc-adm_area ,
             005(1)   sy-vline  CENTERED ,
             006(4)  int_caltrscc-dsrd_loc ,
             010(1)   sy-vline  CENTERED ,
             011(1)   int_caltrscc-fl_ind  ,
             012(1)   sy-vline  CENTERED,
             013(4)   int_caltrscc-loc_loc  ,
             017(1)   sy-vline  CENTERED ,
             018(25)  int_caltrscc-reason ,
            043(1)   sy-vline  CENTERED .
      FORMAT COLOR OFF .
    ENDLOOP.
    WRITE:/001(25)  text-002,wf_cor_rec .
    WRITE:/001(25)  text-003,wf_rec .
  ENDIF.

ENDFORM.                    " f_check_db_data&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;rgds&lt;/P&gt;&lt;P&gt;Anver&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if hlped pls mark points&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Nov 2006 08:27:21 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/download-to-excel-using-methods/m-p/1700029#M306930</guid>
      <dc:creator>anversha_s</dc:creator>
      <dc:date>2006-11-07T08:27:21Z</dc:date>
    </item>
  </channel>
</rss>

