Daten mit PowerShell in und aus Excel zu importieren und zu exportieren ist äußerst praktisch, insbesondere wenn man Berichte automatisiert oder einfach nicht den ganzen Tag mit Tabellenkalkulationen arbeiten möchte. Doch nicht jeder hat Excel überall installiert – beispielsweise auf einem Server oder unter Windows Core. Daher ist es oft schwierig herauszufinden, wie man mit Excel-Dateien arbeiten kann, ohne Office zu benötigen. Zum Glück gibt es ein ziemlich gutes Modul namens ImportExcel, das all dies kinderleicht und sogar unterhaltsam macht, selbst wenn man kein Skripting-Profi ist. Nach der Einrichtung können Sie Excel-Dateien direkt in PowerShell lesen, schreiben und bearbeiten – ganz unkompliziert.
Dies ist besonders nützlich, wenn Sie mit Active Directory-Exporten, Serverzustandsberichten oder Inventarprotokollen arbeiten und Prozesse automatisieren möchten, anstatt Tabellen manuell zu öffnen und zu bearbeiten. Der gesamte Vorgang mag anfangs etwas ungewöhnlich erscheinen, funktioniert aber – manchmal sogar besser als erwartet. Beachten Sie, dass Sie PowerShell als Administrator ausführen müssen, um Module zu installieren, und dass Sie Internetzugang benötigen, um ImportExcel aus der PowerShell Gallery herunterzuladen. Danach genügen wenige Befehle, um Ihre Daten in Excel zu importieren und zu exportieren, selbst auf einem Rechner ohne Office.
Wie man PowerShell für Excel verwendet, ohne Microsoft Office zu installieren
Installieren Sie das ImportExcel-Modul – denn natürlich muss Windows es unnötig kompliziert machen.
- In PowerShell ausführen:
Install-Module ImportExcel
Dadurch wird das für die Funktionalität benötigte Modul heruntergeladen. Gelegentlich werden Sie aufgefordert, dem Repository zu vertrauen; bestätigen Sie dies einfach und fahren Sie fort. Auf einem restriktiven Server müssen Sie möglicherweise zuerst die Ausführungsrichtlinie auf „RemoteSigned“ oder „Bypass“ setzen, aber das ist ein anderes Thema.
PowerShell-Daten direkt in eine Excel-Datei exportieren
Angenommen, Sie haben eine Liste von Prozessen oder Benutzern und benötigen einen schnellen Bericht. Verwenden Sie dazu das Tool Export-Excel– es erstellt die Datei und formatiert sogar die Spalten. Zum Beispiel:
Get-Process | Export-Excel -Path "C:\ps\list_processes.xlsx" -AutoSize -TableName "WindowsProcesses" -WorksheetName "Procs"
Dieses Tool exportiert alle laufenden Prozesse in eine übersichtliche Excel-Tabelle, passt die Spaltenbreite automatisch an und fügt Tabellenformatierungen hinzu. Quasi vollautomatisch.
Daten aus Excel einlesen – ähnlich wie das Öffnen einer CSV-Datei, aber mit einem übersichtlicheren Format.
Wenn Sie ein Tabellenblatt mit Benutzerinformationen oder Konfigurationen vorbereitet haben, können Sie es problemlos importieren:
$oldData = Import-Excel -Path "C:\ps\ad_users.xlsx" -WorkSheetName "AD_User_List" -HeaderName UserName, FullName
Dadurch wird das Tabellenblatt in ein PowerShell-Objekt mit von Ihnen definierten Spaltenüberschriften eingelesen. Sie sind nicht mehr auf reine CSV-Daten beschränkt – Sie erhalten nun strukturierte Daten, die Sie anpassen, filtern oder aktualisieren können.
Werte in einer Excel-Tabelle ändern
Sie möchten die Daten einer Zelle ändern? Kein Problem. Hier ist eine schnelle Methode:
$excel = Open-ExcelPackage -Path "C:\ps\ad_users.xlsx" $worksheet = $excel. Workbook. Worksheets['AD_User_List'] # Check current value $worksheet. Cells['C3'].Value # Change it $worksheet. Cells['C3'].Value = 'DevOps' # Save changes Close-ExcelPackage $excel
Es ist etwas ungewöhnlich, aber es funktioniert. Die Bibliothek kümmert sich um die Details der Zellbezüge; Sie müssen also nur die Zelle angeben, die Sie bearbeiten möchten, und auf Speichern klicken.
Hinzufügen neuer Zeilen – falls Sie neue Benutzerinformationen oder Protokolle hinzufügen möchten.
# Read existing data $existing = Import-Excel -Path "C:\ps\ad_users.xlsx" # Create new object $newUser = [PSCustomObject]@{ UserName = "lukas.shumacher" FullName = "Lukas Schumacher" JobTitle = "Junior Software Developer" } # Add it to existing data $existing += $newUser # Export everything back Export-Excel -Path "C:\ps\ad_users.xlsx" -WorksheetName "AD_User_List" -InputObject $existing
Tatsächlich lassen sich diese Code-Schnipsel in Skripte umwandeln, die Berichte erstellen, Benutzerinformationen aktualisieren oder den Zustand Ihrer Server überwachen – ganz ohne Excel. Ich bin mir nicht sicher, warum es funktioniert, aber bei einer Konfiguration gab es zunächst Probleme, nach einem Neustart oder einigen Anpassungen lief es dann aber einwandfrei.
Zusammenfassung
ImportExcel ist ein echter Gamechanger für die Ausführung von Skripten auf Servern ohne grafische Benutzeroberfläche oder in Testumgebungen ohne vollständige Office-Installation. Der Einstieg ist kinderleicht und die Software bietet genügend Flexibilität für die meisten Automatisierungsanforderungen. Kurz gesagt: Es geht darum, Daten in Tabellenkalkulationen einfach und unkompliziert zu importieren, zu exportieren und anzupassen.
Zusammenfassung
- Installieren Sie ImportExcel mit
Install-Module - Wird
Export-Excelzum Speichern von Daten in Dateien verwendet - Daten aufnehmen mit
Import-Excel - Zellen direkt modifizieren mit
Open-ExcelPackageundClose-ExcelPackage - Neue Daten können durch Kombinieren von Objekten und erneutes Exportieren hinzugefügt werden.