Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Download binary file (excelfile + makro)

Former Member
0 Kudos

Hi,

i searched in the forum for an answer but i didn´t find any...

So, here is my question:

I have an excelfile with makros and i want to download it from server.

Using gui_download creates a file which can not be read by excel.

DO.

READ DATASET makro_rag INTO downtab.

IF sy-subrc > 0. EXIT. ENDIF.

rec_len = STRLEN( downtab-tab ).

APPEND downtab.

ENDDO.

CLOSE DATASET makro_rag.

DESCRIBE TABLE downtab LINES rec_cnt.

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

filename = makro_rag_down

filetype = 'BIN'

IMPORTING

filelength = rec_len

TABLES

data_tab = downtab

EXCEPTIONS

file_open_error = 1

file_write_error = 2.

When using cl_gui_frontend_services=>gui_download I got errors because of incorrect assignments.

DO.

READ DATASET makro_rag INTO downtab.

IF sy-subrc > 0. EXIT. ENDIF.

rec_len = STRLEN( downtab-tab ).

wa_heading-line = downtab-tab.

APPEND wa_heading to g_heading.

ENDDO.

close dataset makro_rag.

CALL METHOD cl_gui_frontend_services=>gui_download

EXPORTING

BIN_FILESIZE = rec_len

filename = 'c: empmakro_rag.xls'

FILETYPE = 'BIN'

changing

data_tab = g_heading

Has anybody an idea what goes wrong there?

Thanks in advance,

Sebastian

1 ACCEPTED SOLUTION

anversha_s
Active Contributor
0 Kudos

hi,

use TEXT_CONVERT_XLS_TO_SAP function module to fetch values directly from the EXCEL file to your internal table.

REPORT  zupload_excel_to_itab.
 
TYPE-POOLS: truxs.
 
PARAMETERS: p_file TYPE  rlgrap-filename.
 
TYPES: BEGIN OF t_datatab,
      col1(30)    TYPE c,
      col2(30)    TYPE c,
      col3(30)    TYPE c,
      END OF t_datatab.
DATA: it_datatab type standard table of t_datatab,
      wa_datatab type t_datatab.
 
DATA: it_raw TYPE truxs_t_text_data.
 
* At selection screen
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  CALL FUNCTION 'F4_FILENAME'
    EXPORTING
      field_name = 'P_FILE'
    IMPORTING
      file_name  = p_file.
 
 
***********************************************************************
*START-OF-SELECTION.
START-OF-SELECTION.
 
  CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
    EXPORTING
*     I_FIELD_SEPERATOR        =
      i_line_header            =  'X'
      i_tab_raw_data           =  it_raw       " WORK TABLE
      i_filename               =  p_file
    TABLES
      i_tab_converted_data     = it_datatab[]    "ACTUAL 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.
  ENDIF.
 
 
***********************************************************************
* END-OF-SELECTION.
END-OF-SELECTION.
  LOOP AT it_datatab INTO wa_datatab.
    WRITE:/ wa_datatab-col1,
            wa_datatab-col2,
            wa_datatab-col3.
  ENDLOOP.

Also, check the following links:

http://www.sapdevelopment.co.uk/file/file_upexcel.htm

http://www.sapdevelopment.co.uk/file/file_upexcelalt1.htm

http://www.sapdevelopment.co.uk/file/file_upexcelalt2.htm

Regards

Anver

3 REPLIES 3

anversha_s
Active Contributor
0 Kudos

hi,

use TEXT_CONVERT_XLS_TO_SAP function module to fetch values directly from the EXCEL file to your internal table.

REPORT  zupload_excel_to_itab.
 
TYPE-POOLS: truxs.
 
PARAMETERS: p_file TYPE  rlgrap-filename.
 
TYPES: BEGIN OF t_datatab,
      col1(30)    TYPE c,
      col2(30)    TYPE c,
      col3(30)    TYPE c,
      END OF t_datatab.
DATA: it_datatab type standard table of t_datatab,
      wa_datatab type t_datatab.
 
DATA: it_raw TYPE truxs_t_text_data.
 
* At selection screen
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  CALL FUNCTION 'F4_FILENAME'
    EXPORTING
      field_name = 'P_FILE'
    IMPORTING
      file_name  = p_file.
 
 
***********************************************************************
*START-OF-SELECTION.
START-OF-SELECTION.
 
  CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
    EXPORTING
*     I_FIELD_SEPERATOR        =
      i_line_header            =  'X'
      i_tab_raw_data           =  it_raw       " WORK TABLE
      i_filename               =  p_file
    TABLES
      i_tab_converted_data     = it_datatab[]    "ACTUAL 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.
  ENDIF.
 
 
***********************************************************************
* END-OF-SELECTION.
END-OF-SELECTION.
  LOOP AT it_datatab INTO wa_datatab.
    WRITE:/ wa_datatab-col1,
            wa_datatab-col2,
            wa_datatab-col3.
  ENDLOOP.

Also, check the following links:

http://www.sapdevelopment.co.uk/file/file_upexcel.htm

http://www.sapdevelopment.co.uk/file/file_upexcelalt1.htm

http://www.sapdevelopment.co.uk/file/file_upexcelalt2.htm

Regards

Anver

Former Member
0 Kudos

Hi Becker,

Try the following transactions : CG3Y or CG3Z.

This may help.

Ashven

Former Member
0 Kudos

Try checking <b>TEXT_CONVERT_XLS_TO_SAP</b> function module.