Transparente Tabelle im CSV Format lokal auf dem PC speichern

  1. Transparente Tabelle erstellen (zxls)
  2. Zeile für die Transparente Tabelle deklarieren (gs_zxls)
  3. Struktur anlegen für die interne Tabelle und Zeile (gty_data)
  4. interne Tabelle und Zeile deklarieren (gs_data, gt_data)
  5. Typ und Variable truxs_t_text_data deklarieren für die Konvertierung.
  6. Dann baut man die Methode cl_gui_frontend_services => file_open_dialog ein, damit man im Selektionsbildschirm über einen Dialogbildschirm das File auswählen kann, welches man hochladen will.
  7. Mit einem SELECT die Daten aus der transparenten Tabelle holen
  8. Mit einem LOOP kann man jetzt jede einzelnen Zeile einer internen Tabelle noch lesen und schließlich anpassen.
  9. Mit MOVE-CORRESPONDING kann man bei ungleicher Anordnung der Struktur der internen Tabelle und der Struktur der Transparenten Tabelle die richtigen Werte in die richtigen Felder schreiben.
  10. Anschließend kann man mit APPEND die Werte in eine interne Tabelle schreiben. 
  11. Dann kann man mit dem Funktionsbaustein TEXT_CONVERT_TO_CSV_FORMAT die interne Tabelle gt_data in ein CSV Format konvertieren
  12. Dann kann man mit dem Funktionsbaustein GUI_DOWNLOAD die interne Tabelle outtab_csv die bei der Konvertierung gefüllt wurde kann man jetzt downloaden.

Bild zur Methode file_open_dialog

Demo Programm

REPORT  z_csv_download.

"Transparente Tabelle
TABLESzxls.

"Zeile der Tabelle
DATAgs_zxls TYPE zxls.
DATAgt_zxls TYPE TABLE OF zxls.
"Tabelle für die .CSV-Konvertierung
TYPES truxs_t_text_data(4096TYPE c OCCURS 0.
DATAouttab_csv TYPE truxs_t_text_data.

"Struktur de internen Tabelle.
TYPES :
 
BEGIN OF gty_data,
    name
(40TYPE c,
    nummer
(10TYPE c,
 
END OF gty_data.
"Interne Tabelle
DATA:    gs_data TYPE gty_data,
         gt_data 
TYPE TABLE OF gty_data.

"Big Version Pfad auswählen um CSV zuspeichern
DATAld_filename TYPE string,
      ld_path 
TYPE string,
      ld_fullpath 
TYPE string,
      ld_result 
TYPE i,
      gd_file 
TYPE c.

"Hier kann man das XLS eingeben
PARAMETERSp_file TYPE rlgrap-filename DEFAULT 'C:\xXx\XLSEINSPIELEN2.csv'.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  
PERFORM f4_help.

START
-OF-SELECTION.

  
"Daten in Transparente Tabelle schreiben.
  
PERFORM add_data.
  
PERFORM download_csv.
*&---------------------------------------------------------------------*
*&      Daten bearbeiten
*&---------------------------------------------------------------------*
FORM add_data .

  
SELECT FROM zxls INTO TABLE gt_zxls.

  
LOOP AT gt_zxls INTO gs_zxls.
    
MOVE-CORRESPONDING gs_zxls TO gs_data.
    
APPEND gs_data TO gt_data.
  
ENDLOOP.

ENDFORM.                    "add_data

*&---------------------------------------------------------------------*
*&      Form  download_csv
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM download_csv.

****************************************************************
* Daten konvertieren
****************************************************************

  
CALL FUNCTION 'SAP_CONVERT_TO_CSV_FORMAT'
    
EXPORTING
      i_field_seperator    
';'
    
TABLES
      i_tab_sap_data       
gt_data
    
CHANGING
      i_tab_converted_data 
outtab_csv
    
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'Fehler 'sy-subrc' beim konvertieren ins .CSV-Format!'.
  
ENDIF.

****************************************************************
* Daten speichern
****************************************************************

  
DATAl_filename TYPE string.
  l_filename 
p_file.

  
CALL FUNCTION 'GUI_DOWNLOAD'
    
EXPORTING
      filename 
l_filename
    
TABLES
      data_tab 
outtab_csv
    
EXCEPTIONS
      
OTHERS   1.
  
IF sy-subrc <> 0.
*    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
*            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    
WRITE'Fehler 'sy-subrc' beim Speichern der .CSV-Datei!'.
  
ENDIF.

ENDFORM.                    "download_csv

*&---------------------------------------------------------------------*
*&      Form  f4_help
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM f4_help.

* Display save dialog window
  
CALL METHOD cl_gui_frontend_services=>file_save_dialog
    
EXPORTING
*      window_title      = ' '
      default_extension 
'CSV'
      default_file_name 
'D1_Sätze'
      initial_directory 
'c:\temp\'
    
CHANGING
      filename          
ld_filename
      path              
ld_path
      fullpath          
ld_fullpath
      user_action       
ld_result.
  
p_file  ld_fullpath.

ENDFORM.                                                    "f4_help

 

        search this website

Regotz Michel