PowerShell: Excel zu JSON konvertieren

Mit PowerShell ist so einiges möglich. Unter anderem ist es kein Problem, eine Excel-Liste zu JSON konvertieren zu lassen. Es gibt Fälle, bei denen CSV Dateien an ihre Grenzen kommen, beispielsweise wenn der Inhalt der XLS-Datei Kommas (,) beinhaltet. Hierfür gibt es auf Github ein fertiges Script. Der original-Beitrag wurde auf https://flamingkeys.com/ gefunden.

JSON

Voraussetzungen (Powershell / Excel)

Die Voraussetzung, damit man das Script zum Konvertierten von XLSX zu JSON ausführen kann, sind natürlich PowerShell und ein lokal installiertes Microsoft Excel:

  • Windows PowerShell
    Bereits mit PowerShell Version 5.1 getestet
  • Microsoft Excel
    Bereits mit Excel 2013, 2016 und 2019 getestet

Excel (XLSX) zu JSON konvertieren

Hat man das PowerShell Script von Github heruntergeladen, ist es sofort einsatzbereit. Das Konvertieren ist ganz einfach. Das Input-File ist natürlich unsere Excel-Datei im XLSX-Format, Output-File der Pfad zur gewünschten JSON-Datei und Sheet-Name sollte selbsterklärend sein:

Convert-ExcelSheetToJson -InputFile ExcelFile.xlsx -OutputFileName JSONFile.json -SheetName MySheet1
Excel Datei

Je nach Größe des Excel-File kann das Umwandeln in das JSON-Format einige Zeit in Anspruch nehmen. Generell sollten aber keine Fehler auftreten, da JSON mit Sonderzeichen umgehen kann, bei denen eine CSV-Datei scheitern würde.

Excel zu JSON

Natürlich sollte die Excel-Datei (wie im Beispiel) schon ein ordentliches Format vorgeben. Bei wirren Strukturen wird zwar trotzdem eine JSON Datei erzeugt, allerdings ist dann der Inhalt unter Umständen nicht zu gebrauchen. Generell funktioniert das PowerShell Skript sehr gut und wurde von mir schon des Öfteren genutzt. Dieses kann ich definitiv weiterempfehlen.

Parameter

Um das Konvertieren einer Excel-Datei zu einer JSON-Datei zu starten, werden mindestens zwei Parameter im PowerShell Script benötigt. Diese sind die Input-Datei (.xlsx) und die Output-Datei (.json) als Pfad.

  • -InputFile
  • -OutputFileName

Beinhaltet die Excel-Datei mehrere Blätter, so muss das Blatt angegeben werden, welches zu JSON konvertiert werden soll. Hier hilft der Parameter -SheetName. Ist in der Datei nur ein Blatt vorhanden, wird dieser Parameter nicht für das Umwandeln benötigt.

  • -SheetName

Werden keine genauen Pfade angegeben, muss sich die Input-Datei im gleichen Verzeichnis wie das PowerShell Script befinden. Die JSON Datei wird dann ebenfalls in diesem Ordner erstellt. Das sollte aber selbsterklärend sein.

Herunterladen (Convert-ExcelSheetToJson)

Herunterladen kann man das PowerShell Script (.ps1) zum Konvertieren von XLSX nach JSON natürlich kostenlos auf Github. Natürlich kann der Quellcode auch direkt kopiert werden und als ps1-Datei abgespeichert werden.

Johannes
 

sidebar
>