Nehmen Sie CSV-Daten und konvertieren Sie sie mit Frends in Flatfile-Daten.
Geschrieben vonLukas Vor über einer Woche aktualisiertTable of contentsIn dieser Anleitung erstellen wir einen kurzen Prozess, der CSV-Daten liest und in Flatfile-Daten konvertiert. Wir verwenden einen Beispieldatensatz als Beispiel für CSV-Daten. Den Beispiel-CSV-Datensatz finden Sie unten.
1,Addie Henderson,19
2,Lilly Reeves,21
3, Rebecca Bradley, 47
4, Joseph Bryan, 46
5,Juan Gibson,58
6,Melvin Armstrong,52
7,Elsie Curtis,63
8,Mable Salazar,18
9, Mittie Parsons, 18
10,Andrew Cooper,31
Es gibt einige Möglichkeiten, Flatfiles in Frends zu erstellen. Mit Flatfiles meinen wir Dateien, die keine Trennzeichen oder andere Zeichen haben, die die Bedeutung der Daten vermitteln. Die Position des Zeichens verrät, was es bedeutet. Daher ist es normalerweise notwendig, Füllzeichen hinzuzufügen, um die Daten an die richtige Stelle in einer Datei zu bringen. Wenn Ihre Eingabedaten XML sind, ist es normalerweise am besten, XSLT-Transformationen zu verwenden, um Flatfiles zu erstellen. Wenn die Eingabe JSON ist, sind Handlebars und C# oder LINQ gute Optionen. Hier haben wir CSV-Daten, die sich leicht in ein C#-Objekt umwandeln lassen und dann rudimentäre C#-Operationen verwenden. Dies ist nicht die einzige Möglichkeit, sollte aber mit nur geringen Programmierkenntnissen leicht verständlich sein.
Schritte zum Erstellen des Prozesses
Erstellen Sie einen Prozess und geben Sie ihm einen Namen.
Fügen Sie ein neues Aufgabenelement hinzu und hängen Sie es an den Prozessauslöser an.
Wählen Sie innerhalb der neuen Aufgabe „Analysieren“ aus dem Dropdown-Menü „Aufgabe auswählen“ im Abschnitt „FRENDS.CSV“.
Fügen Sie den Beispiel-CSV-Datensatz in das Feld „CSV“ innerhalb der Aufgabe ein. Geben Sie im Feld „Trennzeichen“ das Trennzeichen ein, das in den CSV-Daten verwendet wird, die Sie umwandeln. Im Fall des Beispiel-Datensatzes ist das Trennzeichen ein Komma.
Klicken Sie im Feld „Spaltenspezifikationen“ auf die Schaltfläche „Element hinzufügen“. Fügen Sie für jede Datenspalte ein Element hinzu, um den Inhalt der Spalte anzugeben. Im Fall des Beispieldatensatzes benötigen Sie drei Elemente, da es drei Spalten gibt.
Geben Sie im Feld „Name“ den Namen ein, der zu den Daten der jeweiligen Spalte passt. Das Dropdown-Menü mit dem Namen „Typ“ kann auf „Zeichenfolge“ belassen werden.
Die folgenden Bilder zeigen, wie das Feld „Spaltenspezifikationen“ für den Beispieldatensatz aussehen sollte. Wenn Sie möchten, können Sie das gesamte Feld „Spaltenspezifikationen“ leer lassen. In diesem Fall muss Frends jedoch Spaltennamen und Datentypen erraten. Da unsere Daten keine Überschriften enthalten, wären in diesem Fall alle Spaltennamen leer.
Wechseln Sie von „Eingabe“ auf „Option“. Wenn Ihr CSV-Datensatz Überschriften enthält, stellen Sie sicher, dass das Feld „Enthält Überschriftenzeile“ aktiviert ist. Wenn der Datensatz keine Überschriften enthält, wie z. B. der Beispieldatensatz, stellen Sie sicher, dass das Feld deaktiviert ist.
Als nächstes fügen Sie dem Prozess ein C#-Anweisungselement hinzu. Geben Sie dem C#-Anweisungselement einen beliebigen Namen, zum Beispiel „In Flatfile umwandeln“, da dies die Funktion dieses C#-Anweisungselements ist. Stellen Sie sicher, dass das Feld „Variable zuweisen“ aktiviert ist. Benennen Sie die Variable entsprechend.
Fügen Sie im Feld „Anweisung“ den folgenden Code ein:
{
int AnzahlSpalten = #Ergebnis.Headers.Count;
int AnzahlZeilen = #Ergebnis.Daten.Anzahl;
Liste<Liste<Objekt>> csvList = neue Liste<Liste<Objekt>>();
csvList = #Ergebnis.Daten;
Objekt [][] arr = csvList.Select(Liste => Liste.ToArray()).ToArray();
Zeichenfolge [] Daten = neue Zeichenfolge [AnzahlZeilen];
Liste<Zeichenfolge> arrList = neue Liste<Zeichenfolge>();
Zeichenfolge FlatfileOutput = "";
{
int Zahl = 0;
int col = 0;
während (Zahl < AnzahlSpalten)
{
{
Int-Index = 0;
für (int Zeile = 0; Zeile < AnzahlZeilen; Zeile++)
{
wenn (Index < Daten.Länge)
{
Daten[Index] = arr[Zeile][Spalte].ToString();
}
Index++;
}
Index = 0;
}
{
int größte = 0;
für (int i = 0; i < Daten.Länge; i++)
{
Objektwert = Daten[i];
Zeichenfolgenobjekt = (Zeichenfolge)Wert;
wenn (Objektlänge > größte)
{
größte = Objektlänge;
}
}
für (int i = 0; i < Daten.Länge; i++)
{
Objektwert = Daten[i];
Zeichenfolgenobjekt = (Zeichenfolge)Wert;
obj = obj.PadRight(größtes + 1);
Daten[i] = Objekt;
}
größte = 0;
}
arrList.AddRange(Daten);
Zahl++;
Spalte++;
}
}
{
für (int times = 0; times < numOfRows; times++)
{
für (int i = 0 + mal; i < arrList.Count; i += numOfRows)
{
flatfileOutput = flatfileOutput + arrList[i];
}
flatfileOutput = flatfileOutput + Umgebung.NeueZeile;
}
}
gibt FlatfileOutput zurück;
}Dieser Code verliert seine Formatierung, sobald er in das C#-Anweisungselement in Ihrem Prozess eingefügt wird. Er sollte jedoch unabhängig von der Formatierung funktionsfähig sein und ungefähr so aussehen:
Fügen Sie abschließend ein Return-Element an das C#-Statement-Element an und fügen Sie im Feld „Expression“ Folgendes ein:#var."Name der Variable im C#-Anweisungselement"
Die transformierten Flatfile-Daten, die vom Beispiel-CSV-Datensatz zurückgegeben werden, sollten folgendermaßen aussehen:
Verwandte ArtikelCSV lesen und in XML umwandelnEinführung in C#-Datentypen in FrendsKonvertieren Sie CSV in JSONSo verwenden Sie LINQ in Frends zur Datenextraktion und -manipulationEinführung in das Mapping von JSON-Daten mithilfe von Objekten