Von Applikationsserver/PC in interne Tabelle

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

Von Applikationsserver/PC in interne Tabelle

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Hallo!

ich hätte eine Frage und zwar, weiß jemand wie man eine Excel-Datei, die man auf dem PC oder Applikationsserver hat in eine interne Tabelle bekommt? Und muss dort ein bestimmtes Format vorherrschen vielleicht csv?

Vielen Dank im Voraus.

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


Re: Von Applikationsserver/PC in interne Tabelle

Beitrag von autohandel7 (Specialist / 186 / 67 / 0 ) »
Hi,
Transparente Tabelle erstellen (zxls)
Zeile für die Transparente Tabelle deklarieren (gs_zxls)
Struktur anlegen für die interne Tabelle und Zeile (gty_data)
interne Tabelle und Zeile deklarieren (gs_data, gt_data)
Typ und Variable truxs_t_text_data deklarieren für die Konvertierung.
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.
Dann kann man mit dem Funktionsbaustein TEXT_CONVERT_XLS_TO_SAP das File konvertieren und z.B. in die interne Tabelle gt_data schreiben.
Struktur der internen Tabelle muss gleich sein wie der Aufbau des EXCELS
Mit einem LOOP kann man jeden einzelnen Zeile einer internen Tabelle lesen und anschliessend innerhalb des LOOP's bearbeiten.
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.
Anschliessend kann man mit MODIFY die Werte in eine Tabelle schreiben.

Re: Von Applikationsserver/PC in interne Tabelle

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
vielen Dank schon mal :).

Hosa! Das klingt etwas kompliziert... ein Codebeispiel wäre wirklich klasse :).

Re: Von Applikationsserver/PC in interne Tabelle

Beitrag von autohandel7 (Specialist / 186 / 67 / 0 ) »
Demo Programm

REPORT z_xls_einlesen_in_itab.

"Transparente Tabelle
TABLES: zxls.

"Zeile der Tabelle
DATA: gs_zxls TYPE zxls.

"Aufbau eines Excel files mit Zwei Zeilen.
TYPES :
BEGIN OF gty_data,
name(40) TYPE c,
nummer(10) TYPE c,
END OF gty_data.

"Tabeldata
TYPES: truxs_t_text_data(4096) TYPE c OCCURS 0.
DATA: g_raw_data TYPE truxs_t_text_data,
gs_data TYPE gty_data,
gt_data TYPE TABLE OF gty_data.

"Hier kann man das XLS eingeben
PARAMETERS: pa_file TYPE rlgrap-filename DEFAULT 'C:\xXx\XLSEINSPIELEN.xls'.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_file.

"XLS aufruf ermöglichen
PERFORM selectfile.

START-OF-SELECTION.

"XLS in ITAB gt_data laden (holt Daten aus Excel und füllt gt_data ab)
"XLS kann nur glesen werden wenn es nicht im Excel geöffnet ist
PERFORM uploadexcel.

"Daten in Transparente Tabelle schreiben.
PERFORM add_data.

*&---------------------------------------------------------------------*
*& Form ADD_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM add_data .

LOOP AT gt_data INTO gs_data.
gs_data-nummer = gs_data-nummer + 1.
MOVE-CORRESPONDING gs_data TO gs_zxls.
MODIFY zxls FROM gs_zxls.
ENDLOOP.

ENDFORM. " ADD_DATA
*&---------------------------------------------------------------------*
*& Form SELECTFILE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM selectfile .

DATA :
lv_subrc LIKE sy-subrc,
lt_it_tab TYPE filetable.

" Anzeeigen des File im Open Dialog control/screen
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = 'Select Source Excel File'
default_filename = '*.xls'
multiselection = ' '
CHANGING
file_table = lt_it_tab
rc = lv_subrc.

" Schreibe den PFAD in die das Inputfeld
LOOP AT lt_it_tab INTO pa_file.
ENDLOOP.

ENDFORM. " SELECTFILE
*&---------------------------------------------------------------------*
*& Form UPLOADEXCEL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM uploadexcel .

CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
i_line_header = 'X'
i_tab_raw_data = g_raw_data
i_filename = pa_file
TABLES
i_tab_converted_data = gt_data[] " Data
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.

ENDFORM. " UPLOADEXCEL
" ADD_DATA

Re: Von Applikationsserver/PC in interne Tabelle

Beitrag von M@atze! (ForumUser / 92 / 6 / 21 ) »
Hi,

alternativ kannst du auch mit einer Standard-Suchhilfe für die Dateiauswahl
und dem FuBa "ALSM_EXCEL_TO_INTERNAL_TABLE" arbeiten.
Dieser liefert dir eine Tabelle mit mit dem Inhalt der XLS(X)-Datei im Format
ROW (Zeile)
COL (Spalte)
VALUE (Feldinhalt)

Bsp:

Code: Alles auswählen.

REPORT Z_TST_XLS_UPL.

DATA: filename TYPE localfile,
      xls_data TYPE TABLE OF alsmex_tabline.

PARAMETERS: p_file TYPE icl_diagfilename MATCHCODE OBJECT icl_diagfilename.

START-OF-SELECTION.

filename = p_file.

CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
      EXPORTING
        filename                = filename
        i_begin_col             = 1
        i_begin_row             = 1
        i_end_col               = 999
        i_end_row               = 999999
      TABLES
        intern                  = xls_data
      EXCEPTIONS
        inconsistent_parameters = 1
        upload_ole              = 2
        OTHERS                  = 3.

Einschränkung: Der Pfad inkl. Dateiname darf nicht länger als 128 Zeichen sein.

Gruß
Matze

Folgende Benutzer bedankten sich beim Autor M@atze! für den Beitrag:
L0w-RiDer


Seite 1 von 1

Vergleichbare Themen

2
Antw.
2539
Views
PDF-Datei von Applikationsserver in interne Tabelle einlesen
von Geri » 15.04.2005 12:42 • Verfasst in ABAP® Core
2
Antw.
822
Views
Interne Tabelle als xml Datei auf einem Applikationsserver speichern
von lisa » 03.02.2021 09:46 • Verfasst in ABAP® für Anfänger
4
Antw.
239
Views
5
Antw.
1272
Views
Inhalt interne Tabelle an andere interne Tabelle übergeben
von L0w-RiDer » 30.01.2020 16:28 • Verfasst in ABAP® für Anfänger
5
Antw.
2603
Views
Tabelle auf Applikationsserver und Excel-Datei transport.
von Bright4.5 » 10.09.2018 09:21 • Verfasst in ABAP® für Anfänger

Ü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.