Funktionsbaustein um XLSX-Datei zu speichern

Getting started ... Alles für einen gelungenen Start.
11 Beiträge Seite 1 von 1
11 Beiträge Seite 1 von 1

Funktionsbaustein um XLSX-Datei zu speichern

Beitrag von Bright4.5 (Specialist / 108 / 9 / 0 ) » 5. Okt 2018 16: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.


Re: Funktionsbaustein um XLSX-Datei zu speichern

Beitrag von a-dead-trousers (Top Expert / 3206 / 81 / 794 ) » 5. Okt 2018 17: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

Re: Funktionsbaustein um XLSX-Datei zu speichern

Beitrag von DeathAndPain (Top Expert / 1034 / 119 / 227 ) » 5. Okt 2018 18: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.

Re: Funktionsbaustein um XLSX-Datei zu speichern

Beitrag von Tommy Nightmare (ForumUser / 27 / 5 / 1 ) » 8. Okt 2018 11: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)

Re: Funktionsbaustein um XLSX-Datei zu speichern

Beitrag von Tommy Nightmare (ForumUser / 27 / 5 / 1 ) » 8. Okt 2018 11:47

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

Gruß, Tommy

Re: Funktionsbaustein um XLSX-Datei zu speichern

Beitrag von A6272 (Specialist / 115 / 1 / 9 ) » 8. Okt 2018 12: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.

Re: Funktionsbaustein um XLSX-Datei zu speichern

Beitrag von edwin (Specialist / 253 / 5 / 39 ) » 8. Okt 2018 15: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

Re: Funktionsbaustein um XLSX-Datei zu speichern

Beitrag von Bright4.5 (Specialist / 108 / 9 / 0 ) » 9. Okt 2018 09:24

Hey! Super es passt. Vielen Dank für die Antworten :)

Re: Funktionsbaustein um XLSX-Datei zu speichern

Beitrag von L0w-RiDer (Specialist / 103 / 10 / 1 ) » 2. Nov 2018 15:57

hmmm ich bräuchte auch eine Methode/Funktionsbaustein um eine XLSX-Datei auf der Festplatte abzuspeichern. Gibt es da was Gutes, außer ABAP2XLSX (da dies bei uns nicht funktioniert) ?

Re: Funktionsbaustein um XLSX-Datei zu speichern

Beitrag von edwin (Specialist / 253 / 5 / 39 ) » 2. Nov 2018 17:00

in der export_to_xml ist die Ausgabe als Xstring, diesen kannst Du mit Open Dataset ... Transfer... ausgeben, oder baue dir eine interne Tabelle und gebe sie mit cl_gui_frontend_services aus.
/Edwin

Re: Funktionsbaustein um XLSX-Datei zu speichern

Beitrag von L0w-RiDer (Specialist / 103 / 10 / 1 ) » 6. Nov 2018 14:07

okay habe es nun anders gelöst. Danke :)

Seite 1 von 1

Aktuelle Forenbeiträge

Abrechnung Konditionskontrakte Wildcards
vor 15 Minuten von SAP_ENTWICKLER 3 / 33
Userexit vor dem Transport-import
vor 2 Stunden von il.ost 5 / 70
ABAP Clean Code
vor 4 Stunden von ralf.wenzel 38 / 857
ADOBE Forms - geschachtelte Tabellen
vor 16 Stunden von a-dead-trousers 3 / 51
Merkmale in Abhängigkeit vom Beziehungswissen
vor 19 Stunden von wreichelt 6 / 178

Unbeantwortete Forenbeiträge

[GELÖST] Feld KNVV-BOIDT
vor 4 Tagen von SAP_ENTWICKLER 1 / 49
Sortierbegriffe einer Stückliste ändern
vor 5 Tagen von mbiesenb 1 / 40
Feiertagsklasse und Lohnart Verknüpfung entfernen
vor 5 Tagen von Flashtie 1 / 39
Berechtigungen für Batch User
vor einer Woche von JohnLocklay 1 / 86