Excel Dynamish lesen und bearbeiten

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Excel Dynamish lesen und bearbeiten

Beitrag von autohandel7 (Specialist / 186 / 67 / 0 ) »
Hi Experten,
ich habe ein Excel Datei: lt_intern
Der hat 4 festen Spalten un unbegrenzte Anzahl anderen Spalteten:
Kopf: 1 / 2 / 3 / 4 /
001 text1 xx 56
002 text2 xx 65 / 45/ 52/
003 text2 xx 75 / 85/ 52/ 53/ 54

der habe ich mit call function 'ALSM_EXCEL_TO_INTERNAL_TABLE' in lt_intern: gelesen habe.
row/ col/ value
1 1 001
1 2 text1
1 3 xx
1 4 56
2 1 002
2 2 text2
2 3 xx
2 4 65
2 5 45
2 6 52
3 1 text2
und so weiter.

und eine interne Struktur wo soll ich die Daten von Excel in folgenden Format eintragen:
gt_excelin:
Nummer/ Name/ Beschreibung/ Teil1
001 text1 xx 56
002 text2 xx 65
002 text2 xx 45
002 text2 xx 52
003 text3 xx 75
003 text3 xx 85
und so weiter.
ich dachte gehe ich über Loop :
*
field-symbols <lf_excelin> type t_excelin.
field-symbols <lf_excelin1> type t_excelin.
field-symbols <lf_var> type any.
field-symbols <lf_intern> type alsmex_tabline.

**** Lesen Tabelle in unsere Struktur.
data : ld_index type i.
LOOP AT lt_intern ASSIGNING <lf_intern>.
ASSIGN gs_excelin TO <lf_excelin1>.
MOVE <lf_intern>-col TO ld_index.
ASSIGN COMPONENT ld_index OF STRUCTURE <lf_intern> TO <lf_var>.
if ld_index = '001'.
MOVE <lf_intern>-value TO <lf_excelin1>.". -objnum.
elseif ld_index = '002'.
MOVE <lf_intern>-value TO <lf_excelin1>-classnum.
elseif ld_index = '003'.
MOVE <lf_intern>-value TO <lf_excelin1>-charact.
** else.
elseif <lf_intern>-col => '004'.
MOVE <lf_intern>-value TO <lf_excelin1>-value_char.
endif.
INSERT <lf_excelin1> INTO TABLE gt_excelin.
AT END OF row.
ENDAT.
ENDLOOP.

macht etwas falsch, hat jemand Erfahrung.
Danke

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


Re: Excel Dynamish lesen und bearbeiten

Beitrag von JHM (Top Expert / 1189 / 1 / 196 ) »
autohandel7 hat geschrieben:macht etwas falsch, hat jemand Erfahrung.
Ja ich: Genauso verhalten sich die meisten User.
Eine Fehlermeldung/-beschreibung mit der man rein gar nichts Anfangen kann.

Ich frag mich immer wie der Mechaniker in der Werkstatt ein Auto reparieren soll, wenn der Fahrer nicht mal sagt was kaputt ist bzw. welche Symptome das auf suchen der Werkstatt veranlasst hat. Da schmeißt man doch auch nicht den Schlüssel auf den Tisch und sagt "mach mal ganz".


Mittels Glaskugel:
Du hast eine Exceltabelle, in den ersten drei Spalten steht der Zeilen Schlüssel, danach kommen n Spalten mit Werten zu diesem Schlüssel.

Anmerkung: Das wieder spricht aber deiner Aussage:
autohandel7 hat geschrieben: Der hat 4 festen Spalten un unbegrenzte Anzahl anderen Spalteten:
Du möchtest im Ergebnis eine interne Tabelle, bei der jede Zeile aus den Schlüsselfeldern und EINEM Wert besteht.
Es müssen also aus einer Excel-Zeile mehrere Zeilen erzeugt werden. In den gelesenen Daten, stehen die Schlüsselfelder immer in col 1-3, die Werte in den cols => 4.
Dafür braucht man keine dynamische Zuweisung, die "Logik" kann man doch einfach abbilden:

Code: Alles auswählen.

LOOP AT gt_excelin INTO gs_excelin.
  CASE gs_excelin-col.
    WHEN 1.  
*  neuer Schlüssel, also INIT 
      CLEAR: ls_intern.
*  1. Schlüsselfeld übernehmen
      ls_intern-nummer = gs_excelin-value.
    WHEN 2.
*  2. Schlüsselfeld übernehmen
      ls_intern-name = gs_excelin-value.
    WHEN 3.
*  3. Schlüsselfeld übernehmen
      ls_intern-beschreibung = gs_excelin-value.
    WHEN OTHERS.
*  Wert übernehmen
      ls_intern-teil1 = gs_excelin-value.
*  Wertsatz in interne Tabelle übernehmen
      APPEND ls_intern TO lt_intern.   
  ENDCASE.
ENDLOOP.

Folgende Benutzer bedankten sich beim Autor JHM für den Beitrag:
autohandel7

Gruß Hendrik

Re: Excel Dynamish lesen und bearbeiten

Beitrag von autohandel7 (Specialist / 186 / 67 / 0 ) »
Danke Hendrik,
hat geklapt, aber ohne:
* neuer Schlüssel, also INIT
CLEAR: ls_intern.
was meinst du, wofür 'clear: ls_intern' hier soll sein?
Danke

Re: Excel Dynamish lesen und bearbeiten

Beitrag von JHM (Top Expert / 1189 / 1 / 196 ) »
autohandel7 hat geschrieben:was meinst du, wofür 'clear: ls_intern' hier soll sein?
Sollte auch ohne gehen, da alle Felder der Zielstruktur vor dem Append gefüllt werden. Der INIT schützt davor, Daten des Vorgängers mit zu übernehmen, wenn nicht alle Felder der ZielStruktur explizit gefüllt werden.
Gruß Hendrik

Seite 1 von 1

Vergleichbare Themen

3
Antw.
1532
Views
Excel Serverseitig lesen/schreiben?!?
von Kriskra » 01.04.2005 07:48 • Verfasst in ABAP® Core
4
Antw.
2430
Views
Excel von einer BSP aus Lesen/Schreiben!?!
von Kriskra » 01.04.2005 07:45 • Verfasst in Web-Dynpro, BSP + BHTML
8
Antw.
4222
Views
Excel Datei Lesen und in sap Tabelle speichern
von amjahid » 13.11.2007 09:44 • Verfasst in ABAP® für Anfänger
23
Antw.
8648
Views
Excel Tabelle lesen, Open dataset
von meliz » 07.06.2008 09:42 • Verfasst in ABAP® Core
1
Antw.
1139
Views
Excel lesen in ein Interne Tabele mit anderen Struktur
von autohandel7 » 20.08.2015 11:14 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Aktuelle Forenbeiträge

Fiori App aus dem Launchpad aufrufen
vor einer Stunde von Bright4.5 2 / 10
alv_grid aktualisieren
vor 3 Stunden von Egzon gelöst 4 / 80
SELECT CHAR16 in CHAR12-Feld
vor 12 Stunden von Shortcut IT 3 / 42

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.

Aktuelle Forenbeiträge

Fiori App aus dem Launchpad aufrufen
vor einer Stunde von Bright4.5 2 / 10
alv_grid aktualisieren
vor 3 Stunden von Egzon gelöst 4 / 80
SELECT CHAR16 in CHAR12-Feld
vor 12 Stunden von Shortcut IT 3 / 42

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 4 Wochen von Lucyalison 1 / 134
Group Items auf einer Filterbar
vor 5 Wochen von Bright4.5 1 / 170