Gegevens importeren en exporteren naar Excel met PowerShell is erg handig, vooral als je rapporten automatiseert of gewoon niet de hele dag in spreadsheets wilt hoeven klikken. Maar niet iedereen heeft Excel overal geïnstalleerd, bijvoorbeeld op een server of Windows Core. Een veelvoorkomend probleem is dan ook hoe je met Excel-bestanden kunt werken zonder Office. Gelukkig bestaat er een prima module genaamd ImportExcel die dit allemaal een stuk eenvoudiger en zelfs leuker maakt, zelfs als je geen scripttalent bent. Na de installatie kun je Excel-bestanden rechtstreeks vanuit PowerShell lezen, schrijven en bewerken, zonder gedoe.
Dit is vooral handig als u werkt met Active Directory-exports, serverstatusrapporten of inventarislogboeken en u de zaken wilt automatiseren in plaats van handmatig spreadsheets te openen en te bewerken. Het hele proces is in het begin een beetje vreemd, maar het werkt – soms zelfs beter dan verwacht. Houd er rekening mee dat u PowerShell als beheerder moet uitvoeren om modules te installeren en dat u internettoegang nodig hebt om ImportExcel uit de PowerShell Gallery te downloaden. Daarna is het slechts een kwestie van een paar opdrachten om uw gegevens in en uit Excel te importeren, zelfs op een computer zonder Office.
Hoe gebruik je PowerShell voor Excel zonder Microsoft Office te installeren?
Installeer de ImportExcel-module — want Windows moet het natuurlijk weer ingewikkelder maken dan nodig is.
- Uitvoeren in PowerShell:
Install-Module ImportExcel
Hiermee wordt de module gedownload die nodig is voor alle functionaliteit. Soms krijg je een melding waarin je wordt gevraagd de repository te vertrouwen; zeg gewoon ‘ja’ en ga verder. Als je op een server met strenge regels zit, moet je mogelijk eerst het uitvoeringsbeleid instellen op ‘RemoteSigned’ of ‘Bypass’, maar dat is een ander verhaal.
Exporteer PowerShell-gegevens rechtstreeks naar een Excel-bestand.
Stel, je hebt een lijst met processen of gebruikers en je wilt snel een rapport. Gebruik dan de functie Export-Excel`rapport` – deze maakt het bestand aan en formatteert zelfs de kolommen. Bijvoorbeeld:
Get-Process | Export-Excel -Path "C:\ps\list_processes.xlsx" -AutoSize -TableName "WindowsProcesses" -WorksheetName "Procs"
Dit zet alle actieve processen in een overzichtelijk Excel-bestand, waarbij de kolommen automatisch worden aangepast en de tabel opgemaakt. Vrijwel volledig automatisch.
Gegevens uit Excel teruglezen — vergelijkbaar met het openen van een CSV-bestand, maar dan met een strakker formaat.
Als je een spreadsheet met gebruikersgegevens of configuraties hebt voorbereid, kun je deze eenvoudig importeren:
$oldData = Import-Excel -Path "C:\ps\ad_users.xlsx" -WorkSheetName "AD_User_List" -HeaderName UserName, FullName
Dit leest het spreadsheet in een PowerShell-object, met door u gedefinieerde kopteksten. U bent niet langer beperkt tot alleen CSV-gegevens; nu krijgt u gestructureerde data die u kunt aanpassen, filteren of bijwerken.
Waarden wijzigen in een Excel-blad
Wil je de gegevens van een cel wijzigen? Geen probleem. Zo doe je dat snel:
$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
Het is een beetje vreemd, maar het werkt. De bibliotheek regelt de details van celverwijzingen, dus je hoeft alleen maar de cel te selecteren die je wilt bewerken en op ‘Opslaan’ te klikken.
Nieuwe rijen toevoegen — omdat u mogelijk nieuwe gebruikersinformatie of logboeken wilt toevoegen.
# 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
Je kunt deze codefragmenten omzetten in scripts die rapporten genereren, gebruikersinformatie bijwerken of de status van je servers bewaken, zonder dat je Excel hoeft te installeren. Ik weet niet precies waarom het werkt, maar bij één configuratie werkte het aanvankelijk niet, maar na een herstart of wat aanpassingen functioneerde het perfect.
Samenvatting
ImportExcel is een gamechanger voor het uitvoeren van scripts op headless servers of in testomgevingen zonder volledige Office-installatie. Het is eenvoudig om mee te beginnen en biedt voldoende flexibiliteit voor de meeste automatiseringsbehoeften. Onthoud wel dat het draait om het importeren, exporteren en aanpassen van gegevens in spreadsheets, zonder de gebruikelijke problemen.
Samenvatting
- Installeer ImportExcel met
Install-Module - Gebruik dit
Export-Excelom gegevens in bestanden op te slaan. - Gegevens importeren met
Import-Excel - Wijzig cellen rechtstreeks met
Open-ExcelPackageenClose-ExcelPackage - Voeg nieuwe gegevens toe door objecten te combineren en opnieuw te exporteren.