gelöst EXCEL Upload in ABAP


Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).

Moderatoren: Jan, Steff

gelöst EXCEL Upload in ABAP

Beitragvon Andrzej » 19.04.2017, 12:19

Hallo Forum,

ich möchte eine Excel Datei mit Hilfe der Klasse cl_fdt_xl_spreadsheet in SAP Uploaden und dann weiter damit arbeiten. Ist es hierfür zwingend notwendig ein Webdynpro zu nutzen? Welche Möglichkeit gibt es außer durch ein Webdynpro meine Werte im Konstruktor der Klasse cl_fdt_xl_spreadsheet zu befüllen.

Reicht es nicht einfach aus mit der Methode zu arbeiten "CALL METHOD cl_gui_frontend_services=>file_open_dialog" ?

Der Konstruktor der Klasse cl_fdt_xl_spreadsheet hat folgende Parameter:

iv_document_name = document_name
iv_xdocument = xdocument
iv_mime_type = mime_type.

Vielen Dank für eure Hilfe
Andrzej
ForumUser
 
Beiträge: 51
Registriert: 16.06.2015, 09:32
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: EXCEL Upload in ABAP

Beitragvon Andrzej » 19.04.2017, 19:04

Beziehungsweise woher kann ich die Eingangsparameter bekommen also meine Excel Datei um diese weiter in der Klasse zu verarbeiten?

Vielen Dank
Andrzej
ForumUser
 
Beiträge: 51
Registriert: 16.06.2015, 09:32
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Re: EXCEL Upload in ABAP

Beitragvon a-dead-trousers » 20.04.2017, 06:38

So wie ich das beim kurzen Überblick über die Klasse cl_fdt_xl_spreadsheet sehe, dient sie eher dazu aus einer INTERNEN Tabelle eine EXCEL-Datei zu erstellen. (Siehe Methode CREATE_DOCUMENT)
Das Ergebnis dieser Methode ist dann das XDOCUMENT für den Constructor.
Es wäre aber möglich, dass dieses XDOCUMENT in Wirklichkeit ein XSLX ist und daher auch ein Upload einer bestehenden Datei klapppen könnte:
1) Mit cl_gui_frontend_services=>gui_upload eine Datei hochladen.
2) Die DATA_TAB in einen XSTRING umwandeln. Beispiel siehe viewtopic.php?f=18&t=17980
3) Den XSTRING an den CONSTRUCTOR von cl_fdt_xl_spreadsheet übergeben.

Alternativ würde ich aber eher ABAP2XSLX empfehlen: https://ivanfemia.github.io/abap2xlsx/
Das ist um einiges mächtiger.
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

Für diese Nachricht hat a-dead-trousers einen Dank bekommen :
Andrzej
a-dead-trousers
Top Expert
 
Beiträge: 2691
Registriert: 07.02.2011, 13:40
Dank erhalten: 618 mal
Ich bin: Entwickler/in

Re: EXCEL Upload in ABAP

Beitragvon Andrzej » 20.04.2017, 09:22

Hallo danke für die Antwort!!

ich gehe jetzt wie folgt vor:

1. cl_gui_frontend_services=>file_open_dialog
2. cl_gui_frontend_services=>gui_upload

das umwandeln in das XSTRING Format hat mit der Funktion 'SCMS_BINARY_TO_XSTRING' soweit geklappt.

Bei der Übergabe an den Konstruktor der Klasse cl_fdt_xl_spreadsheet wird nun eine Exception geworfen. :roll:
Andrzej
ForumUser
 
Beiträge: 51
Registriert: 16.06.2015, 09:32
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Re: EXCEL Upload in ABAP

Beitragvon Andrzej » 20.04.2017, 12:14

[quote="a-dead-trousers"]
1) Mit cl_gui_frontend_services=>gui_upload eine Datei hochladen.
2) Die DATA_TAB in einen XSTRING umwandeln. Beispiel siehe viewtopic.php?f=18&t=17980
3) Den XSTRING an den CONSTRUCTOR von cl_fdt_xl_spreadsheet übergeben.

der Fehler wird bei mir daran liegen das ich einfach nur den Filename nehme und diesen konvertiere..jedoch muss ich an die einzelnen tabelleneinträge kommen und diese nach xstring konvertieren..das Beispiel von Punkt zwei verstehe ich leider nicht so ganz.. gibt es da evtl. noch andere Ansätze?
Andrzej
ForumUser
 
Beiträge: 51
Registriert: 16.06.2015, 09:32
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Re: EXCEL Upload in ABAP

Beitragvon a-dead-trousers » 21.04.2017, 19:42

Andrzej hat geschrieben:Bei der Übergabe an den Konstruktor der Klasse cl_fdt_xl_spreadsheet wird nun eine Exception geworfen. :roll:
Andrzej hat geschrieben:der Fehler wird bei mir daran liegen das ich einfach nur den Filename nehme und diesen konvertiere..jedoch muss ich an die einzelnen tabelleneinträge kommen und diese nach xstring konvertieren

Wie, in welchem Modus lädst du die Datei hoch? Binär? Möglicherweise gibts beim hin- und herkonvertieren einen Fehler. Das kann ich aber, ohne dein Coding zu kennen, nicht beantworten. Solange du die Excel-Datei nicht sauber in den Speicher geladen hast, kannst du keine "einzelnen tabelleneinträge" davon auslesen.
Andrzej hat geschrieben:..das Beispiel von Punkt zwei verstehe ich leider nicht so ganz.. gibt es da evtl. noch andere Ansätze?

a-dead-trousers hat geschrieben:Alternativ würde ich aber eher ABAP2XSLX empfehlen: https://ivanfemia.github.io/abap2xlsx/
Das ist um einiges mächtiger.

Das funktioniert OHNE irgendwelche OLE Schnittstellen und out-of-the-box mit beliebigen Excel-Dateien.
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: 2691
Registriert: 07.02.2011, 13:40
Dank erhalten: 618 mal
Ich bin: Entwickler/in

Re: EXCEL Upload in ABAP

Beitragvon black_adept » 21.04.2017, 23:01

a-dead-trousers hat geschrieben:Das funktioniert OHNE irgendwelche OLE Schnittstellen und out-of-the-box mit beliebigen Excel-Dateien.

Ganz so beliebig dürfen die Exceldateien leider nicht sein sondern müssen im open document format ( .xlsx ) vorliegen
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de
black_adept
Top Expert
 
Beiträge: 2712
Registriert: 08.01.2003, 13:33
Wohnort: Lehrte ( bei Hannover )
Dank erhalten: 388 mal
Ich bin: Freiberufler/in

Re: EXCEL Upload in ABAP

Beitragvon Andrzej » 24.04.2017, 11:59

danke für die Hilfe jetzt klappt es :)

das war mein Fehler ich habe die Datei nicht als Binär hochgeladen..
Andrzej
ForumUser
 
Beiträge: 51
Registriert: 16.06.2015, 09:32
Dank erhalten: 0 mal
Ich bin: Entwickler/in


Zurück zu ABAP Objects®

  Aktuelle Beiträge   
Proforma-Rechnung im EWM
vor 2 Stunden von Barney 0 Antw.
Lokale Klassendefinition in globaler Klasse
vor 4 Stunden von a-dead-trousers 8 Antw.
Write into File System
vor 20 Stunden von DeathAndPain 3 Antw.
gelöst Infoset - Parameter mit Mehrfachselektion?
vor 3 Stunden von BerndSchweiger 2 Antw.
gelöst Werktage eines Zeitraums bestimmen
vor 23 Stunden von DeathAndPain 2 Antw.

  Ähnliche Beiträge beta
OLE und ABAP: Aufruf von Excel-VBA Prozeduren aus ABAP
27.05.2010, 07:40 von OnkelSAP 3 Antw.
PDF Upload
27.06.2012, 08:32 von a-dead-trousers 3 Antw.
gelöst EXCEL Export aus SAP mit Excel 2003 / 2007
04.02.2014, 05:18 von hfahrian 2 Antw.
XML Download und Upload
13.01.2009, 13:03 von Alpha 2 Antw.
Umstellung ABAP auf ABAP Objects
12.10.2006, 11:58 von babap 6 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

Feedback ...?

Was können wir verbessern? Hinterlasse deine Kontaktdaten, wenn du eine direkte Antwort möchtest.

... Absenden!