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 / 1197 / 1 / 197 ) »
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 / 1197 / 1 / 197 ) »
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.
1718
Views
Excel Serverseitig lesen/schreiben?!?
von Kriskra » 01.04.2005 07:48 • Verfasst in ABAP® Core
4
Antw.
2638
Views
Excel von einer BSP aus Lesen/Schreiben!?!
von Kriskra » 01.04.2005 07:45 • Verfasst in Web-Dynpro, BSP + BHTML
23
Antw.
8874
Views
Excel Tabelle lesen, Open dataset
von meliz » 07.06.2008 09:42 • Verfasst in ABAP® Core
8
Antw.
4422
Views
Excel Datei Lesen und in sap Tabelle speichern
von amjahid » 13.11.2007 09:44 • Verfasst in ABAP® für Anfänger
1
Antw.
1274
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

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

Daten an Tabelle binden
vor 4 Stunden von Bright4.5 1 / 91
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1737
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8342