CSV importieren und exportieren
- CSV-Dateien importieren, verarbeiten und exportieren
- Typische Fallstricke (Trennzeichen, Kodierung, Strings statt Zahlen) vermeiden
CSV (Comma-Separated Values) Dateien sind ein weit verbreitetes Format zur Speicherung und Übertragung tabellarischer Daten. PowerShell bietet leistungsfähige Cmdlets wie Import-Csv und Export-Csv, um CSV-Daten einfach in PowerShell zu importieren, zu verarbeiten und wieder zu exportieren.
1. CSV-Import mit Import-Csv
Abschnitt betitelt „1. CSV-Import mit Import-Csv“Das Cmdlet Import-Csv liest eine CSV-Datei und wandelt jede Zeile in ein PowerShell-Objekt um. Dabei werden die Spaltenüberschriften der CSV zu den Eigenschaften der Objekte.
1.1 Beispiel: CSV-Datei importieren
Abschnitt betitelt „1.1 Beispiel: CSV-Datei importieren“Im Lab liegt die Datei C:\Kurs\Daten\Mitarbeiter.csv mit folgendem Inhalt bereit:
Name,Abteilung,AlterAlena,IT,30Bob,HR,35Charlie,Finanzen,28Du kannst diese Datei wie folgt importieren:
$mitarbeiter = Import-Csv -Path "C:\Kurs\Daten\Mitarbeiter.csv"Write-Output $mitarbeiterJedes Objekt im Array $mitarbeiter besitzt die Eigenschaften Name, Abteilung und Alter.
1.2 Verarbeitung der importierten Daten
Abschnitt betitelt „1.2 Verarbeitung der importierten Daten“Du kannst die importierten Daten beispielsweise filtern oder sortieren:
# Filter: Zeige alle Mitarbeiter in der IT-Abteilung$itMitarbeiter = $mitarbeiter | Where-Object { $_.Abteilung -eq "IT" }Write-Output $itMitarbeiter
# Sortierung: Sortiere Mitarbeiter nach Alter$sortierteMitarbeiter = $mitarbeiter | Sort-Object AlterWrite-Output $sortierteMitarbeiter2. CSV-Export mit Export-Csv
Abschnitt betitelt „2. CSV-Export mit Export-Csv“Das Cmdlet Export-Csv schreibt PowerShell-Objekte in eine CSV-Datei. Du kannst dabei festlegen, welche Eigenschaften exportiert werden sollen, und ob Typinformationen (Kopfzeilen) enthalten sein sollen.
2.1 Beispiel: Objekte in eine CSV-Datei exportieren
Abschnitt betitelt „2.1 Beispiel: Objekte in eine CSV-Datei exportieren“Angenommen, du hast eine Sammlung von Produktobjekten, die du als CSV speichern möchtest:
$produkte = @( [PSCustomObject]@{ Name = "Laptop"; Preis = 1200; Lager = 10 }, [PSCustomObject]@{ Name = "Tablet"; Preis = 600; Lager = 25 }, [PSCustomObject]@{ Name = "Smartphone"; Preis = 800; Lager = 15 })$produkte | Export-Csv -Path "C:\Kurs\Ausgabe\Produkte.csv"2.2 Weitere Optionen und Stolperfallen
Abschnitt betitelt „2.2 Weitere Optionen und Stolperfallen“# Semikolon als Trennzeichen (Excel mit deutschem Gebietsschema erwartet das)$produkte | Export-Csv -Path "C:\Kurs\Ausgabe\Produkte_semikolon.csv" -Delimiter ";"
# Oder: das Listentrennzeichen des Systems verwenden$produkte | Export-Csv -Path "C:\Kurs\Ausgabe\Produkte_kultur.csv" -UseCulture
# Kodierung für Umlaute festlegen$produkte | Export-Csv -Path "C:\Kurs\Ausgabe\Produkte_utf8.csv" -Encoding utf83. Zusammenfassung
Abschnitt betitelt „3. Zusammenfassung“-
Import-Csv:
Wandelt CSV-Dateien in PowerShell-Objekte um, sodass du die Daten leicht weiterverarbeiten kannst. -
Export-Csv:
Schreibt PowerShell-Objekte in eine CSV-Datei und bietet Optionen zur Anpassung des Trennzeichens, der Codierung und zur Unterdrückung von Typinformationen. -
Best Practices:
- Passe das Trennzeichen mit
-Delimiteran, wenn erforderlich. - Achte auf die richtige Codierung (z. B. UTF8), um Probleme mit Sonderzeichen zu vermeiden.
- Passe das Trennzeichen mit
Diese Befehle ermöglichen es dir, CSV-Daten in PowerShell effizient zu importieren, zu bearbeiten und wieder zu exportieren – ideal für Automatisierungsaufgaben, Berichte und Datenanalysen.