Beispiel: Konvertieren von Excel in JSON
In diesem Beispiel wird gezeigt, wie Sie mit MapForce anhand einer Excel-Datei ein JSON-Dokument erstellen. Die Excel-Quellarbeitsmappe besteht aus zwei Arbeitsblättern: Office und Staff. Das Arbeitsblatt Office enthält Informationen über die Firmenadresse, während das Arbeitsblatt Staff eine Liste aller Angestellten enthält.
Arbeitsblatt "Staff"
Die Aufgabenstellung ist die folgende:
1.Extraktion der Daten aus der Excel-Datei und Konvertierung der Daten in ein JSON-Dokument.
2.In der JSON-Datei soll für jeden Angestellten festgelegt werden, ob seine Durchwahl (Phone Ext.) auch externen Kontakten zugänglich sein soll. Nur Durchwahlen von Mitarbeitern aus den Abteilungen Marketing und Verwaltung können von außerhalb zugänglich sein.
3.Die Freigaben der einzelnen Angestellten(durchwahlen) müssen in der JSON-Datei in Form eines numerischen Werts, der auch Null enthalten kann, angezeigt werden. Wenn nicht bekannt, müssen die Freigaben in der JSON-Datei als null angegeben werden.
Unten sehen Sie das Mapping dazu. Sie finden es unter dem folgenden Pfad: <Dokumente>\Altova\MapForce2025\MapForceExamples\\Excel_Company_To_JSON.mfd.
Excel_Company_To_JSON.mfd
Wie oben gezeigt, besteht das Mapping aus einer Excel-Quellkomponente und einer JSON-Zielkomponente. Beachten Sie, dass die beiden Arbeitsblätter der Excel-Datei wie in der Excel-Quellkomponente aufscheinen. Der Firmenname wird aus dem Arbeitsblatt Office gemappt, während der Rest der Felder aus dem Arbeitsblatt Staff gemappt wird. Wenn Sie sehen möchten, wie das Mapping zum Auslesen von Zeilendaten aus einzelnen Arbeitsblättern konfiguriert ist, klicken Sie auf die entsprechende -Schaltfläche. In der Abbildung unten sehen Sie die Einstellungen für das Arbeitsblatt Staff.
Gemäß der oben gezeigten Einstellung werden Zeilen ab Zeile 1 bis zum Ende (dynamisch) ausgelesen. Die erste Zeile ist eine Überschrift mit Spaltennamen, daher wurde das Kontrollkästchen Erste Zeile ist Kopfzeile... aktiviert. Außerdem ist im Dialogfeld die Art der Spalten A bis G sowie der Name, unter dem die jeweilige Spalte im Mapping angezeigt wird, definiert. Nähere Informationen zu Excel-Komponenten finden Sie unter Microsoft OOXML Excel 2007+.
Die Zielkomponente ist eine JSON-Struktur. Sie können JSON-Komponenten wie unter Hinzufügen von JSON-Dateien als Mapping-Komponenten beschrieben, zum Mapping hinzufügen. Die Struktur entspricht dem JSON-Schema employees.schema.json, welches sich im selben Ordner wie das Mapping befindet. Nähere Informationen zum Konfigurieren der JSON-Komponente finden Sie unter JSON-Komponenteneinstellungen.
Außerdem enthält das Mapping eine Reihe von Zwischenkomponenten. Bei der ersten handelt es sich um eine Wertezuordnungskomponente. Mit Hilfe dieser Komponente wird anhand der Abteilung entschieden, ob die Telefonnummer gemäß Punkt 2 oben extern freigegeben werden darf. Sie können die Einstellungen der Wertezuordnungskomponente durch Doppelklick auf deren Titelleiste anzeigen:
Die obige Konfiguration kann folgendermaßen zusammengefasst werden: Wenn Department = "Administration" oder "Marketing", gib true zurück. Andernfalls gib false zurück. Der auf diese Weise ermittelte Wert true oder false wird anschließend in die JSON-Zieleigenschaft geschrieben. Nähere Informationen zu Wertezuordnungen finden Sie unter Verwendung von Wertezuordnungen.
Zuletzt wird schließlich mit Hilfe der Funktion exists ermittelt, ob in der Excel-Quelldatei im Kontext der einzelnen Zeilen ein Shares (Freigaben)-Wert vorhanden ist. Diese Funktion gibt einen Booleschen Wert true zurück, wenn der Wert vorhanden ist. Andernfalls wird false zurückgegeben. Der Ergebniswert true oder false wird anschließend als Input an eine If-Else-Bedingung geliefert. Bei false wird ein von einer Konstanten bereitgestellter leerer String an das Zieldatenelement Shares as null übergeben. Dieser leere Wert wird in der erzeugten JSON-Datei zu einer null, da dies, wie durch das Symbol angezeigt, der Datentyp des Datenelements Shares as null ist.
Wenn der Share-Wert des Angestellten numerisch ist, erfüllt er die If-Else-Bedingung nicht mehr und wird stattdessen über eine separate Verbindung in das Zieldatenelement Shares as number (vom numerischen Typ ) geschrieben.
Nähere Informationen zum Hinzufügen von Funktionen zu einem Mapping finden Sie unter Hinzufügen einer Funktion zum Mapping. If-Else-Bedingungen werden unter Filter und Bedingungen nähere beschrieben.
Ausführen des Mappings
Um in MapForce eine Vorschau auf die generierte Datei zu sehen, klicken Sie auf das Fenster Ausgabe. In der Abbildung unten sehen Sie nur ein Fragment der erzeugten JSON-Datei.
Mapping-Ausgabe
Um die Mapping-Ausgabe in einer Datei zu speichern, wählen Sie eine der folgenden Methoden:
•Klicken Sie im Menü Ausgabe auf Ausgabedatei speichern.
•Klicken Sie auf die Symbolleisten-Schaltfläche Generierte Ausgabe speichern .
Automatisierung mit MapForce Server
Wenn Sie MapForce Server lizenziert haben, können Sie das Mapping auch über die Befehlszeile auf einem Linux-, macOS- oder Windows-Rechner ausführen. Beachten Sie, dass bei Ausführung von Mappings auf einem Server normalerweise einige zusätzliche Schritte durchgeführt werden müssen, wie unter Vorbereiten von Mappings für die Server-Ausführung beschrieben. Im Folgenden wird beschrieben, was Sie tun müssen, um dieses Mapping auf einem Server auszuführen:
1.Klicken Sie mit der rechten Maustaste auf das Mapping und wählen Sie im Kontextmenü den Befehl Mapping-Einstellungen. Achten Sie darauf, dass das Kontrollkästchen Pfade im generierten Code absolut machen deaktiviert ist und speichern Sie das Mapping.
2.Klicken Sie im Menü Datei auf Zu MapForce Server-Ausführungsdatei kompilieren. Dadurch wird im Verzeichnis <Dokumente>\Altova\MapForce2025\MapForceExamples\ eine MapForce Server-Ausführungsdatei generiert.
3.Kopieren Sie die generierte .mfx-Datei in ein Verzeichnis auf den Server-Rechner (nennen wir es das "Arbeitsverzeichnis").
4.Kopieren Sie die Excel-Datei aus <Dokumente>\Altova\MapForce2025\MapForceExamples\\Nanonull Inc.xlsx in das Arbeitsverzeichnis auf dem Server-Rechner.
5.Öffnen Sie einen Terminal und ändern Sie das aktuelle Verzeichnis in das Arbeitsverzeichnis.
6.Führen Sie MapForce Server mit dem unten gezeigten Befehl aus. Passen Sie mapforceserver_exec an den Pfad der ausführbaren MapForce Server-Datei auf Ihrem Betriebssystem an.
mapforceserver_exec run Excel_Company_To_JSON.mfx |
Sie können Mappings bei der Server-Ausführung auch als API-Aufruf oder als FlowForce Server-Auftrag (entweder bei Bedarf oder in regelmäßigen Abständen) ausführen. Nähere Informationen dazu finden Sie unter Kompilieren von Mappings zu MapForce Server-Ausführungsdateien.