Zum Hauptinhalt springen
Weil einfach - produktiver ist

Der Daten Spezialist

Konvertieren Sie die Daten mühelos zwischen verschiedenen Formaten ohne Programmierkenntnisse dank Visual Designer. Effizient und super einfach.
Mit der Freeware Version können bis zu 100.000 Datensätze verarbeitet werden!
Flowheater Chart

Zeile mit n - Spalten in mehrere Zeilen mit je einem Wert aufteilen

Mehr
19 Stunden 57 Minuten her #5346 von Uwe Behrens
Hallo Robert,

lange nichts mehr voneinander gehört. Ich habe da mal ein kleines Problemchen, oder ich sehe den Wald vor lauter Bäumen nicht. Ich habe eine Excel-Quelldatei. In dieser Datei sind n-Zeilen enthalten. In den Spalten wird vom Kunden eine Matrix ausgefüllt. Aus jedem Eintrag dieser Matrix möchte ich dann eine neue Zeile generieren. Ist das möglich? Denke ich da gerade verkehrt? 
Hier ein Beispiel:

Excel-Beispiel:
1     Baustein     Wert_1     Wert_2     Wert_3     Wert_4     Wert_5
2     UPG6          100          120           130          400           601
3     AGAHG                       222            55                             66
4     UHJ                                                               873

Ausgabewunsch:
UPG6;100
UPG6;120
UPG6;130
UPG6;400
UPG6;601
AGAHG;222
AGAHG;55
AGAHG;66
UHJ;873

Ich hoffe das war ein wenig verständlich. Die Anzahl der Spalten könnte variieren.

Gibt es da etwas um dieses Problem zu lösen? Die KI sprach sogar von einer "array-function". Das sagte mir aber hier nichts.

Danke schon einmal vorab.

Gruß
Uwe

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
4 Stunden 8 Minuten her #5347 von FlowHeater-Team
Hallo Uwe,

ja, das geht natürlich. Du musst aber eine max. Anzahl an Spalten definieren, die berücksichtigt werden soll.

Du liest als erstes deine Excel Datei ein und kopierts jeden Datensatz x-Mal (=max. Anzahl Spalten -1). Das machst du mit dem GroupOut Heater . Über einen X-Value Heater gibst du die max. Anzahl der Spalten – 1 an. So werden schon mal die Zeilen kopiert. Dann benötigts du noch einen .NET Script Heater und u.s. kleines C# Skript das pro Zeile die gerade verarbeitete Spalte auf die WRITE Seite ausgibt. Die aktuell kopierte Zeile wird über den AutoID Heater ermittelt, hier musst du in den Optionen auswählen, dass sich das Zählen auf den GroupOut bzw. auf den kopierten Zeilen bezieht.

Das Skript gibt dann einfach den Wert der Zeile=Ursprungsspalte zurück.  Die Spalten müssen dazu mit dem .NET Script Heater verbunden werden.

Die Ausgabe wird in eine InMemory Adapter Tabelle geschrieben. Hier stehen dann alle Wert inkl. der Leeren! Das kannst du jetzt in einem zweiten Verarbeitungsschritt mit dem Filter Heater filtern und ausgeben.

Im Anhang findest du ein kleines Beispiel dazu. Das Beispiel verwendet anstelle des Excel Adapter den TextFile Adapter , kann aber 1:1 auch für Excel verwendet werden!

PS: Bei der Erstellung des Beispiels bin ich auf ein kleines Problem gestoßen. Theoretisch könntest du das Filtern auch gleich im ersten Verarbeitungsschritt machen. Funktioniert aktuell nicht da der AutoID Heater in Zusammenhang mit dem Filter und GroupOut nicht korrekt zählt!

C# Skript Code um aktuelle Excel Spalte zurückzugeben
Code:
public object DoWork() {     // Aktuelle Spaltenindex holen     int i = (int)InValues[0].GetInt();     return InValues[i]; // Spalte anhand Spaltenindex zurückgeben }

 

 
Dateianhang: Dateiname: excel-dyan...ilen.zip
Dateigröße:13 KB

 

gruß
Robert Stark

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Minute her #5348 von Uwe Behrens
Hallo Robert,

vielen Dank! Das hat so in meiner Excel-Tabelle funktioniert. Jetzt muss nur noch der Kunde eine winzige Sache vorbereiten und fertig. 

Schönes Wochenende!

Gruß
Uwe

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ladezeit der Seite: 0.298 Sekunden
FlowHeater Logo

FlowHeater - Der Daten Spezialist

Effiziente Datenintegration und Transformation mit FlowHeater - Ihre Lösung für nahtlosen Datentransfer.

Rechtliches

Support & Kontakt

Kontaktinformation


Copyright © 2009-2025 by FlowHeater GmbH. Alle Rechte vorbehalten.