Spreadsheet: Ich habe in einer Spalte kommagetrennte Werte, wie kann ich nur den n-ten Wert ausgeben?

Bsp.: Wert1,Wert2,Wert3

Wenn Sie innerhalb einer Spalte Daten nach einem Trennzeichen auftrennen wollen gibt es 2 Möglichkeiten:

  1. Text-Funktion Splitten im SpreadsheetMapper
  2. Freemarker Funktion ?split

Text-Funktion Splitten im SpreadsheetMapper

Die Text-Funktionen gibt es u.a. auch die Splitten Funktion. Durch Angabe des Trennzeichens und der Position, kann man den n-ten Wert ausgeben.

Beispiel: Um an die 2. Position (Wert2) der obigen Beispiel-Liste zu kommen, können Sie folgende Konfiguration verwenden:

image

Freemarker Funktion ?split

Alternativ können Sie das Gleiche auch direkt im Freemarker Skript über die in Freemarker integrierte Funktion ?split() erreichen. Innerhalb der Klammern wird das Trennzeichen, nach dem die Zeichenkette aufgeteilt werden soll, in Anführungszeichen eingetragen. In diesem Fall lautet die Funktion also split(",") - da wir die Werte zwischen den Kommas betrachten wollen.
Die Split-Funktion sucht nun nach Kommazeichen und speichert jeden Wert, welcher zwischen Kommas steht in eine Liste, der erste Wert erhält die Position 0, der zweite die Position 1 usw. Um nun einen bestimmten Wert von dieser Liste auszugeben wird die Position in eckigen Klammern [] angegeben. Wenn also z.B. der erste Wert ausgegeben werden soll, schreibt man [0], soll der zweite Wert ausgegeben werden [1] usw.

Um in unserem Beispiel an „Wert2“ zu kommen, schreibt man in das Wert-Feld folgende Anweisung:

${SPALTENNAME?split(",")[1]}
 
Ausgabe: Wert2 

Das Trennzeichen (hier Komma) und die Position (hier 1) können natürlich beliebig geändert werden.

Erstes und letztes Element

Um auf das erste oder das letzte Element der gesplitteten Liste zuzugreifen sind die beiden Helfer-Funktionen ?first und ?last sehr hilfreich.