cancel
Showing results for 
Search instead for 
Did you mean: 

excel file header

Former Member
0 Kudos

hi all,

I need to convert internal table to excel file. I am using GUI-upload for that.

i used FILEDNAMES import parameter (undertables) to give file header but thats displays only single lineof header.

And i need to have a file header of 3 rows. please help me how can i get that.

Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

hi all my query is solved.

i modified theinternal table with the required header i wanted andthen passedthe wholeinternal table to GUI_UPLOAD.

Former Member
0 Kudos

Hi Kriti,

Check this one:

Regards,

Chandra Sekhar

Edited by: Chandrasekhar Gandla on Sep 22, 2008 6:05 PM

Former Member
0 Kudos

Hi Kriti,

If you want to download the internal table into excel file, then use GUI_DOWNLOAD function module. Now to download header, what you can call this function module twice. At first time this function module will download the header, call this function module second time to download data of internal table

with this option


append                  = 'X'

Check this sample code


REPORT  z_file_download.
DATA: w_name(90) TYPE c.
DATA:
  BEGIN OF fs_flight,
    carrid   LIKE sflight-carrid,
    connid   LIKE sflight-connid,
    fldate   LIKE sflight-fldate,
    price    LIKE sflight-price,
    currency LIKE sflight-currency,
  END OF fs_flight.
DATA:
  BEGIN OF fs_head,
    carrid(10) TYPE c,
    connid(10) TYPE c,
    fldate(10) TYPE c,
    price(10) TYPE c,
    curr(10) TYPE c,
  END OF fs_head.
DATA:
  t_head LIKE
   TABLE OF
         fs_head.
DATA:
  t_flight LIKE
     TABLE OF
           fs_flight.

fs_head-carrid = 'CARRID'.
fs_head-connid = 'CONNID'.
fs_head-fldate = 'FLDATE'.
fs_head-price  = 'PRICE'.
fs_head-curr   = 'CURRENCY'.
APPEND fs_head TO t_head.
SELECT-OPTIONS:
  s_carrid FOR fs_flight-carrid.



START-OF-SELECTION.
  SELECT carrid
         connid
         fldate
         price
         currency
    FROM sflight
    INTO TABLE t_flight
   WHERE carrid IN s_carrid.

CALL FUNCTION 'GUI_DOWNLOAD'
  EXPORTING
*   BIN_FILESIZE                  =
    filename                      = 'D:\flight.xls'
   FILETYPE                      = 'ASC'
*   APPEND                        = ' '
    WRITE_FIELD_SEPARATOR         = 'X'
*   HEADER                        = '00'
*   TRUNC_TRAILING_BLANKS         = ' '
*   WRITE_LF                      = 'X'
*   COL_SELECT                    = ' '
*   COL_SELECT_MASK               = ' '
*   DAT_MODE                      = ' '
*   CONFIRM_OVERWRITE             = ' '
*   NO_AUTH_CHECK                 = ' '
*   CODEPAGE                      = ' '
*   IGNORE_CERR                   = ABAP_TRUE
*   REPLACEMENT                   = '#'
*   WRITE_BOM                     = ' '
* IMPORTING
*   FILELENGTH                    =
  tables
    data_tab                      = t_head
 EXCEPTIONS
   FILE_WRITE_ERROR              = 1
   NO_BATCH                      = 2
   GUI_REFUSE_FILETRANSFER       = 3
   INVALID_TYPE                  = 4
   NO_AUTHORITY                  = 5
   UNKNOWN_ERROR                 = 6
   HEADER_NOT_ALLOWED            = 7
   SEPARATOR_NOT_ALLOWED         = 8
   FILESIZE_NOT_ALLOWED          = 9
   HEADER_TOO_LONG               = 10
   DP_ERROR_CREATE               = 11
   DP_ERROR_SEND                 = 12
   DP_ERROR_WRITE                = 13
   UNKNOWN_DP_ERROR              = 14
   ACCESS_DENIED                 = 15
   DP_OUT_OF_MEMORY              = 16
   DISK_FULL                     = 17
   DP_TIMEOUT                    = 18
   FILE_NOT_FOUND                = 19
   DATAPROVIDER_EXCEPTION        = 20
   CONTROL_FLUSH_ERROR           = 21
   OTHERS                        = 22
          .
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.



  CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
      filename                = 'D:\flight.xls'
      filetype                = 'ASC'
      append                  = 'X'
      write_field_separator   = 'X'
    TABLES
      data_tab                = t_flight
    EXCEPTIONS
      file_write_error        = 1
      no_batch                = 2
      gui_refuse_filetransfer = 3
      invalid_type            = 4
      no_authority            = 5
      unknown_error           = 6
      header_not_allowed      = 7
      separator_not_allowed   = 8
      filesize_not_allowed    = 9
      header_too_long         = 10
      dp_error_create         = 11
      dp_error_send           = 12
      dp_error_write          = 13
      unknown_dp_error        = 14
      access_denied           = 15
      dp_out_of_memory        = 16
      disk_full               = 17
      dp_timeout              = 18
      file_not_found          = 19
      dataprovider_exception  = 20
      control_flush_error     = 21
      OTHERS                  = 22.
  IF sy-subrc EQ 0.
    MESSAGE 'Download successful' TYPE 'I'.
  ENDIF.
  IF sy-subrc <> 0.
*  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

Regards

Abhijeet

Former Member
0 Kudos

hi,

1.

Try using the FM " SAP_CONVERT_TO_XLS_FORMAT "

This FM directly downloads the Internal Table data into the Excel File.

Sample Report

REPORT Z_R_TEST_FILE.

tables: vbak.

parameters: p_vkorg like vbak-vkorg,

p_file like rlgrap-filename default 'My Documents\TEST_SALE.xls'.

data: begin of itab occurs 0,

vbeln like vbak-vbeln,

vkorg like vbak-vkorg,

end of itab.

start-of-selection.

select vbeln vkorg from vbak into table itab

where vkorg = p_vkorg.

CALL FUNCTION 'SAP_CONVERT_TO_XLS_FORMAT'

EXPORTING

I_FIELD_SEPERATOR =

I_LINE_HEADER =

I_FILENAME = p_file

I_APPL_KEEP = ' '

TABLES

I_TAB_SAP_DATA = itab

CHANGING

I_TAB_CONVERTED_DATA =

EXCEPTIONS

CONVERSION_FAILED = 1

OTHERS = 2

.

IF SY-SUBRC 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

write:/ 'Error while downloading'.

else.

write:/ 'Successful '.

ENDIF.

For headings to appear in the Excel file, APPEND the fieldname to the first line of the Internal Table and pass the table to the FM.

2. TYPES:

BEGIN OF type_final,

string(50) TYPE c, " String Value for Title

END OF type_final.

data:

wa_final TYPE type_final. " Work Area to hold Title Data

"----


  • Internal table to hold Title Data *

"----


DATA:

i_final TYPE STANDARD TABLE OF type_final.

FORM f400_dwnloadplantdata USING p_filepath TYPE any

p_table TYPE STANDARD TABLE.

.

DATA:

lw_file2 TYPE string . " File Path

lw_file2 = p_filepath.

&----


*& Form header

----


  • This Subroutine gets data for displaying title *

----


  • There are no interface parameters to be passed to this subroutine. *

----


FORM header .

wa_final-string = text-021.

APPEND wa_final TO i_final.

wa_final-string = text-022.

APPEND wa_final TO i_final.

wa_final-string = text-023.

APPEND wa_final TO i_final.

wa_final-string = text-024.

APPEND wa_final TO i_final.

wa_final-string = text-025.

APPEND wa_final TO i_final.

wa_final-string = text-026.

APPEND wa_final TO i_final.

wa_final-string = 'Sr.No'.

APPEND wa_final TO i_final.

ENDFORM. " header

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

  • BIN_FILESIZE = BIN_FILESIZE

filename = lw_file2

filetype = 'DBF'

  • APPEND = ' '

write_field_separator = con_tab

  • HEADER = '00'

  • TRUNC_TRAILING_BLANKS = 'X'

  • WRITE_LF = 'X'

COL_SELECT = 'X'

COL_SELECT_MASK = w_col_sel

  • DAT_MODE = ' '

  • CONFIRM_OVERWRITE = ' '

  • NO_AUTH_CHECK = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • WRITE_BOM = ' '

  • TRUNC_TRAILING_BLANKS_EOL = 'X'

  • WK1_N_FORMAT = '0'

  • WK1_N_SIZE = ' '

  • WK1_T_FORMAT = ' '

  • WK1_T_SIZE = ' '

  • IMPORTING

  • FILELENGTH = FILELENGTH

TABLES

data_tab = i_output3

fieldnames = i_final

EXCEPTIONS

file_write_error = 1

no_batch = 2

gui_refuse_filetransfer = 3

invalid_type = 4

no_authority = 5

unknown_error = 6

header_not_allowed = 7

separator_not_allowed = 8

filesize_not_allowed = 9

header_too_long = 10

dp_error_create = 11

dp_error_send = 12

dp_error_write = 13

unknown_dp_error = 14

access_denied = 15

dp_out_of_memory = 16

disk_full = 17

dp_timeout = 18

file_not_found = 19

dataprovider_exception = 20

control_flush_error = 21

.

IF sy-subrc 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF. " IF sy-subrc EQ 0

ENDFORM. " f400_dwnloadplantdata

see i_final is a header table...where i have given header in text elements.& have passes in FM gui...

3.

DATA : BEGIN OF it_join_fields OCCURS 0,

field_name(20),

END OF it_join_fields.

CLEAR it_join_fields.

it_join_fields-field_name = 'pernr'.

APPEND it_join_fields.

CLEAR it_join_fields.

it_join_fields-field_name = 'empname'.

APPEND it_join_fields.

CLEAR it_join_fields.

it_join_fields-field_name = 'new_joinee'.

APPEND it_join_fields.

CLEAR it_join_fields.

it_join_fields-field_name = 'begda'.

APPEND it_join_fields.

CLEAR it_join_fields.

it_join_fields-field_name = 'fath_name'.

APPEND it_join_fields.

CLEAR it_join_fields.

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

BIN_FILESIZE =

filename = file_name

filetype = 'ASC'

append = 'X'

write_field_separator = 'X'

HEADER = '00'

TRUNC_TRAILING_BLANKS = ' '

WRITE_LF = 'X'

COL_SELECT = ' '

COL_SELECT_MASK = ' '

DAT_MODE = ' '

CONFIRM_OVERWRITE = ' '

NO_AUTH_CHECK = ' '

CODEPAGE = ' '

IGNORE_CERR = ABAP_TRUE

REPLACEMENT = '#'

WRITE_BOM = ' '

TRUNC_TRAILING_BLANKS_EOL = 'X'

WK1_N_FORMAT = ' '

WK1_N_SIZE = ' '

WK1_T_FORMAT = ' '

WK1_T_SIZE = ' '

WRITE_LF_AFTER_LAST_LINE = ABAP_TRUE

SHOW_TRANSFER_STATUS = ABAP_TRUE

IMPORTING

FILELENGTH =

TABLES

data_tab = it_join_det_new

fieldnames = it_join_fields

EXCEPTIONS

FILE_WRITE_ERROR = 1

NO_BATCH = 2

GUI_REFUSE_FILETRANSFER = 3

INVALID_TYPE = 4

NO_AUTHORITY = 5

UNKNOWN_ERROR = 6

HEADER_NOT_ALLOWED = 7

SEPARATOR_NOT_ALLOWED

FILESIZE_NOT_ALLOWED = 9

HEADER_TOO_LONG = 10

DP_ERROR_CREATE = 11

DP_ERROR_SEND = 12

DP_ERROR_WRITE = 13

UNKNOWN_DP_ERROR = 14

ACCESS_DENIED = 15

DP_OUT_OF_MEMORY = 16

DISK_FULL = 17

DP_TIMEOUT = 18

FILE_NOT_FOUND = 19

DATAPROVIDER_EXCEPTION = 20

CONTROL_FLUSH_ERROR = 21

OTHERS = 22

.

IF sy-subrc 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

it_join_det_new is ur internal table with data.

4. WS_EXCEL FM.

Regards,

deepthi.