Excel Template mit Daten füllen und Downloaden

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Excel Template mit Daten füllen und Downloaden

Beitrag von RainerP (ForumUser / 7 / 2 / 0 ) »
Hallo alle zusammen,

vielleicht kann mir ja jemand von euch bei meinem Problem behilflich sein:

Ich möchte gewisse Spalten einer Tabelle in ein Excel-Template laden und dieses danach lokal abspeichern (dies sollte alles im Hintergrund geschehen).

Ich habe mir dazu schon diverse Tutorials durchgelesen, aber irgendwie fehlt mir noch der nötige Durchblick.

Glaubt man den Return Codes der einzelnen Methoden zum Öffnen des Templates, dürfte dies bereits problemlos funktionieren.
Um das Excel Template mit Daten zu befüllen verwende ich die Methode insert_one_table aus dem I_OI_SPREADSHEET Interface.
Der Rückgabewert (Error_Code) der Methode lässt auch auf keinen Fehler schließen ( I_OI_ERROR~HAS_SUCCEEDED = 'X' ), jedoch sind die Daten nicht vorhanden (oder ich suche an der falschen Stelle).
Jetzt hätte ich versucht, das Template lokal abzuspeichern um zu sehen ob Daten eingefügt wurden oder nicht, jedoch sind keine Daten vorhanden.

Hat vielleicht jemand von euch eine Ahnung, was ich hier falsche?

Danke für eure Hilfe.

LG Rainer

Ps.: Anbei noch mein Coding (in der Excel_tab stehen die Daten welche ich in das Excel Template eingefügt haben möchte).

FORM f_open_document USING l_clsnam TYPE sbdst_classname
l_clstyp TYPE sbdst_classtype
l_objkey TYPE sbdst_object_key
l_desc TYPE char255.

DATA: locint_signature TYPE sbdst_signature,
locint_uris TYPE sbdst_uri,
locwa_signature LIKE LINE OF locint_signature,
locwa_uris LIKE LINE OF locint_uris.

CALL METHOD c_oi_container_control_creator=>get_container_control
IMPORTING
control = r_control
retcode = wf_retcode.

IF wf_retcode NE c_oi_errors=>ret_ok.
CALL METHOD c_oi_errors=>raise_message
EXPORTING
type = 'E'.
ENDIF.

CREATE OBJECT r_container
EXPORTING
container_name = 'EXCEL'. "Custom Control Name

CALL METHOD r_control->init_control
EXPORTING
r3_application_name = 'ZRHXPEP01'
inplace_enabled = abap_true
inplace_scroll_documents = abap_true
parent = r_container
IMPORTING
retcode = wf_retcode.

IF wf_retcode NE c_oi_errors=>ret_ok.
CALL METHOD c_oi_errors=>raise_message
EXPORTING
type = 'E'.
ENDIF.

CREATE OBJECT r_document.

* Get Document with URL
locwa_signature-prop_name = 'DESCRIPTION'.
* Description of the table template in OAOR
locwa_signature-prop_value = l_desc.
APPEND locwa_signature TO locint_signature.

CALL METHOD r_document->get_with_url
EXPORTING
classname = l_clsnam
classtype = l_clstyp
object_key = l_objkey
CHANGING
uris = locint_uris
signature = locint_signature
EXCEPTIONS
nothing_found = 1
error_kpro = 2
internal_error = 3
parameter_error = 4
not_authorized = 5
not_allowed = 6.

IF sy-subrc NE 0.
MESSAGE 'Error Retrieving Document' TYPE 'E'.
ENDIF.

READ TABLE locint_uris INTO locwa_uris INDEX 1.

CALL METHOD r_control->get_document_proxy
EXPORTING
document_type = 'MS Excel Applikation'
IMPORTING
document_proxy = r_proxy
retcode = wf_retcode.

IF wf_retcode NE c_oi_errors=>ret_ok.
CALL METHOD c_oi_errors=>show_message
EXPORTING
type = 'E'.
ENDIF.

* Open Document
CALL METHOD r_proxy->open_document
EXPORTING
document_url = locwa_uris-uri
open_inplace = abap_true
protect_document = abap_true "Protect Document initially
IMPORTING
retcode = wf_retcode.

IF wf_retcode NE c_oi_errors=>ret_ok.
CALL METHOD c_oi_errors=>show_message
EXPORTING
type = 'E'.
ENDIF.


CALL METHOD r_proxy->get_spreadsheet_interface
IMPORTING
sheet_interface = r_excel
retcode = wf_retcode.

IF wf_retcode NE c_oi_errors=>ret_ok.
CALL METHOD c_oi_errors=>show_message
EXPORTING
type = 'E'.
ENDIF.


ENDFORM.

FORM f_fill_data.
PERFORM fill_output_excel.
DATA: locint_fields TYPE TABLE OF rfc_fields,
entries TYPE i.
DESCRIBE TABLE t_outtab LINES entries.
PERFORM f_create_range USING 3 "Begin of row
1 "Begin of column
entries
3
'Unterschriften'.

CALL FUNCTION 'DP_GET_FIELDS_FROM_TABLE'
TABLES
data = excel_tab
fields = locint_fields
EXCEPTIONS
dp_invalid_table = 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.


* Insert the table entries into Excel
CALL METHOD r_excel->insert_one_table
EXPORTING
fields_table = locint_fields[] "Defn of fields
data_table = excel_tab[] "Data
rangename = 'Unterschriften' "Range Name
"no_flush = 'X'
IMPORTING
error = r_error
retcode = wf_retcode.

IF r_error->has_failed = abap_true.
CALL METHOD r_error->raise_message
EXPORTING
type = 'E'.
ENDIF.



ENDFORM.

FORM f_create_Range USING l_top TYPE i
l_left TYPE i
l_row TYPE i
l_column TYPE i
l_range TYPE char255.
CALL METHOD r_excel->set_selection
EXPORTING
top = l_top
left = l_left
rows = l_row
columns = l_column.

CALL METHOD r_excel->insert_range
EXPORTING
name = l_range
rows = l_row
columns = l_column
IMPORTING
error = r_error.

IF r_error->has_failed = abap_true.
CALL METHOD r_error->raise_message
EXPORTING
type = 'E'.
ENDIF.
ENDFORM.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Excel Template mit Daten füllen und Downloaden

Beitrag von black_adept (Top Expert / 4089 / 127 / 940 ) »
RainerP hat geschrieben:...
Ich möchte gewisse Spalten einer Tabelle in ein Excel-Template laden und dieses danach lokal abspeichern (dies sollte alles im Hintergrund geschehen).
Hallo Rainer,

dein Ansatz mittels DOI ist leider zum Scheitern verurteilt, da DOI letztendlich via OLE2 mit dem auf dem Frontend installierten EXCEL kommuniziert und somit nicht im Hintergrund ausgeführt werden kann.
Falls du auf die Hintergrundverarbeitung angewiesen bist, google nach ABAP2XLSX oder schau direkt im Code-Exchange von SAP nach: https://cw.sdn.sap.com/cw/groups/abap2xlsx

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
RainerP

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Excel Template mit Daten füllen und Downloaden

Beitrag von RainerP (ForumUser / 7 / 2 / 0 ) »
Hallo Stefan,

vielen Dank für den Hinweis, hätte mich sonst vermutlich noch einige Zeit damit gequält und geärgert warum es nicht funktioniert (:

Danke für den Link, hat mir weiter geholfen.

LG
Rainer

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1566
Views
Tabelle Inhalte in Excel downloaden
von seco_neu » 01.11.2007 13:54 • Verfasst in ABAP® für Anfänger
3
Antw.
5379
Views
Daten einer internen Tabelle in ein XML file downloaden
von Julian Waldmann » 01.02.2005 11:08 • Verfasst in ABAP Objects®
1
Antw.
4047
Views
EXCEL: Ausleitung von Daten von SAP nach EXCEL
von MichaelP » 15.04.2005 09:02 • Verfasst in ABAP® Core
6
Antw.
3757
Views
Solved - ALV GRID mit Daten füllen
von sp89 » 08.06.2009 09:12 • Verfasst in ABAP® für Anfänger
10
Antw.
7617
Views
Klasse cl_gos_manager mit Daten füllen
von Nordlicht » 27.03.2016 20:01 • Verfasst in ABAP Objects®

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2416
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9006