gelöst Funktionsbaustein um XLSX-Datei zu speichern


Getting started ... Alles für einen gelungenen Start.

Moderatoren: Jan, Steff

gelöst Funktionsbaustein um XLSX-Datei zu speichern

Beitragvon Bright4.5 » 05.10.2018, 15:25

Hallo,

kennt jemand einen Funktionsbaustein um den Inhalt einer internen Tabelle als XLSX-Datei auf ein Verzeichnis zu speichern (auf der Festplatte).

Ich hab einen Funktionsbaustein, nämlich den hier:

CALL FUNCTION 'Z_CD_DATEIERSTELLUNG'
EXPORTING
i_filename = filepath
i_dtyp = 'CSV'
I_STRUCK = 'PRS'
IT_OPLINE =
i_fanz = 5
i_seperator = ';'
i_servertyp = 'PRS'
TABLES
i_itemtab = gt_ausgabe
EXCEPTIONS
to_mutch_fields = 1
wrong_struc = 2
opline_without_struc = 3
wrong_ifanz = 4
file_error = 5
dict_error = 6
OTHERS = 7.

IF sy-subrc <> 0.
Implement suitable error handling here
ENDIF.


allerdings kann ich damit nur CSV-Dateien speichern. Ich bräuchte nun einen mit dem ich XLSX speichern kann.

P.S: Wie kann man eigentlich so einen Code in so einem Extra-Fenster anzeigen lassen? :)

Vielen Dank im Voraus.
Bright4.5
ForumUser
 
Beiträge: 75
Registriert: 17.08.2018, 18:23
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: Funktionsbaustein um XLSX-Datei zu speichern

Beitragvon a-dead-trousers » 05.10.2018, 16:36

Such mal im Netz oder hier im Forum nach ABAP2XLSX.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.07
Basis: 7.40
a-dead-trousers
Top Expert
 
Beiträge: 3011
Registriert: 07.02.2011, 13:40
Dank erhalten: 744 mal
Ich bin: Entwickler/in

Re: Funktionsbaustein um XLSX-Datei zu speichern

Beitragvon DeathAndPain » 05.10.2018, 17:13

Das ist aber ein Riesenoverkill, sich da extra so ein Paket zu installieren, nur weil man einmal so eine Funktionalität braucht. Und nötig ist es auch nicht: Es gibt einen FB, der direkt .xlsx exportiert. In irgendeinem meiner Programme (oder mehreren) nutze ich den; aber mir fällt grad nicht ein in welchem. Einziger Wermutstropfen dieses FB: Er funktioniert nur, wenn das Programm im Vordergrund läuft und auf dem Clientrechner ein MS Office installiert ist. Dieses wird dann vom SAPGui per OLE angesprochen und für die xlsx-Erstellung genutzt.
DeathAndPain
Expert
 
Beiträge: 740
Registriert: 05.05.2006, 10:14
Dank erhalten: 170 mal
Ich bin: Entwickler/in

Re: Funktionsbaustein um XLSX-Datei zu speichern

Beitragvon Tommy Nightmare » 08.10.2018, 10:38

Stichwort BB Code:
https://de.wikipedia.org/wiki/BBCode
Für Code diese: (ich habe die eckigen Klammern hier durch runde Klammern ersetzt, weil die sonst nicht dargestellt werden)
(code)Dein Code(/code)
Tommy Nightmare
ForumUser
 
Beiträge: 14
Registriert: 08.09.2017, 11:38
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Re: Funktionsbaustein um XLSX-Datei zu speichern

Beitragvon Tommy Nightmare » 08.10.2018, 10:47

Wie wäre es mit dem Fuba GUI_DOWNLOAD?
Alternativ die gleichnamige Methode der Klasse CL_GUI_FRONTEND_SERVICES.

Gruß, Tommy
Tommy Nightmare
ForumUser
 
Beiträge: 14
Registriert: 08.09.2017, 11:38
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Re: Funktionsbaustein um XLSX-Datei zu speichern

Beitragvon A6272 » 08.10.2018, 11:46

Hallo,

die Interne Tabelle, soll die
Variante 1: als Text mit Tab getrennt abgespeichert und nur mit Dateiendung .xlsx versehen, so dass ein Endanwender draufklicken kann und EXCEL sich öffnet?
Variante 2: soll ein echtes File vom Typ .xlsx herauskommen?

Da du anscheinen auf einem Windows Laufwerk speichern willst, ist es nur im Dialogprozess möglich. Im ALV gibt es diese Exportmethode, auch wenn es mühsam sein dürfte, den mal debuggen und analysieren.
A6272
ForumUser
 
Beiträge: 82
Registriert: 27.02.2007, 09:30
Dank erhalten: 4 mal
Ich bin: Berater/in

Re: Funktionsbaustein um XLSX-Datei zu speichern

Beitragvon edwin » 08.10.2018, 14:40

Hi,
im Batch gehts auch - bau dir ein Feldcatalog deiner Tabelle auf, dann :

Code: Alles auswählen
data :
"Tabelle"   type standard table of ...
dein_feldcatalog   type LVC_T_FCAT,
export_als_xstring type XSTRING,
choice              TYPE if_salv_bs_xml=>s_type_xml_choice,
versio               TYPE string,
ref_result_data        TYPE REF TO cl_salv_ex_result_data_table,
tabelle_als_ref_to_data  TYPE REF TO DATA.
....
      GET REFERENCE OF "Tabelle" INTO tabelle_als_ref_to_data.
 versio = if_salv_bs_xml=>version_26.

  choice-version  = if_salv_bs_xml=>version_26.
  choice-xml_type = if_salv_bs_xml=>c_type_xlsx.
  choice-gui_type = if_salv_bs_xml=>c_gui_type_gui.

  ref_result_data = cl_salv_ex_util=>factory_result_data_table(
*                    T_SELECTED_ROWS             = lt_lvc_row
*                    T_SELECTED_COLUMNS          = lt_sel_cols
*                    T_SELECTED_CELLS            = lt_sel_cells
      r_data                      =  tabelle_als_ref_to_data
*                   S_LAYOUT                    = gs_layo
      t_fieldcatalog              = dein_feldcatalog
*                   T_SORT                      = gt_sort
*                   T_FILTER                    = gt_filter
*                    T_HYPERLINKS                = me->mt_hyperlinks
*                    S_CURRENT_CELL              = ls_cur_cell
*                    HYPERLINK_ENTRY_COLUMN     = ls_hyper_entry
*                    DROPDOWN_ENTRY_COLUMN      = ls_dropdown_entry
*                    T_DROPDOWN_VALUES           = lt_drdn )
*                    r_top_of_list               = lr_form_tol
*                    r_end_of_list               = lr_form_eol
          ).

  cl_salv_bs_tt_util=>if_salv_bs_tt_util~transform(
                            EXPORTING  xml_type      = choice-xml_type
                                       xml_version   = versio
                                       r_result_data = ref_result_data
                                       xml_flavour   = if_salv_bs_c_tt=>c_tt_xml_flavour_export
                                       gui_type      = choice-gui_type
                            IMPORTING  xml           = export_als_xstring ).
 


in "export als xstring" bekommst Du die XLSX binär zurückgeliefert
tabelle_als_ref_to_data muss als REF TO DATA definiert sein und auf eine Tabelle des Typs verweisen, wie im Fieldcatalog definiert, siehe Bsp Code.

/Edwin
edwin
Specialist
 
Beiträge: 228
Registriert: 27.02.2007, 17:15
Wohnort: Ludwigsburg
Dank erhalten: 26 mal
Ich bin: Freiberufler/in

Re: Funktionsbaustein um XLSX-Datei zu speichern

Beitragvon Bright4.5 » 09.10.2018, 08:24

Hey! Super es passt. Vielen Dank für die Antworten :)
Bright4.5
ForumUser
 
Beiträge: 75
Registriert: 17.08.2018, 18:23
Dank erhalten: 0 mal
Ich bin: Entwickler/in


Zurück zu ABAP® für Anfänger

  Aktuelle Beiträge   
Sachkonto für FI Rechnung in idoc übermittel
vor 15 Stunden von uibig 0 Antw.
Anlagenmigration Export
Gestern von verzweifelt 1 Antw.
SFP - PDF Datenbindung
Gestern von a-dead-trousers 2 Antw.
Protected Attribut füttern
vor 4 Tagen von Tommy Nightmare 3 Antw.
gelöst Problem bei der Tree-Darstellu ng einer Hierarchie
Gestern von khb 3 Antw.

  Ähnliche Beiträge beta
csv Datei auf Applikationsserver speichern
31.08.2007, 10:09 von JHM 1 Antw.
Json datei local speichern
25.01.2018, 11:26 von Tron 1 Antw.
Excel Datei Lesen und in sap Tabelle speichern
14.11.2007, 15:48 von amjahid 8 Antw.
Interne Tabelle als Excel-Datei speichern
28.08.2018, 12:01 von ralf.wenzel 24 Antw.
gelöst Dateiname und Verzeichnis als Excel-Datei speichern
05.10.2018, 15:21 von Bright4.5 2 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

cron