PowerShell ImportExcel Module - Part 1 Introduction
Wes Stahler
Posted on January 10, 2020
A common task in PowerShell is to generate CSV files that are later imported into Microsoft Excel for analysis, graphics, etc. An example:
Get-Process | Export-Csv -Path C:\TEMP\Processes.csv -NoTypeInformation
Imagine being able to export data with PowerShell directly into Excel without having Excel installed with the following capabilities:
- Conditional Formatting
- PivotTables
- Charts
- Sparklines
- SQL data to Excel
Interested?
If so, before you continue reading, go grab the ImportExcel module.
- https://github.com/dfinke/ImportExcel
- https://www.powershellgallery.com/packages/ImportExcel/7.0.1
- Find-Module -Name ImportExcel | Import-Module
Once installed, use Get-Command to explore the various cmdlets that are available.
Get-Command -Module ImportExcel -Verb Get,Export
Next, I recommend you look at the help for Export-Excel.
Get-Help Export-Excel -ShowWindow #AND
Get-Help Export-Excel -Examples
And finally, let's go ahead and generate an Excel file with some basic formatting.
# remove our example file
$path = 'C:\TEMP\Example1.xlsx'
Remove-Item -Path $path -ErrorAction SilentlyContinue
# Create some data
$data = @"
Name,ID,Quarter1,Quarter2,Quarter3,Quarter4
Greef Karga,0001,1100,1200,1300,1400
Kuiil,0002,1000,1000,1000,0
IG-11,0003,1200,1200,1400,1500
Cara Dune,0004,800,700,700,300
Mayfeld,0005,400,500,600,200
Din Djarin,0006,2000,2200,2100,500
"@ | ConvertFrom-Csv
# Create our various Excel parameters
$params = @{
# Spreadsheet Properties
Path = $path
AutoSize = $true
AutoFilter = $true
BoldTopRow = $true
FreezeTopRow = $true
WorksheetName = 'Data'
PassThru = $true
}
# Create the Excel file
$ExcelPackage = $data | Export-Excel @params
$WorkSheet = $ExcelPackage.Data
# Apply some basic formatting
Set-ExcelRange -Worksheet $WorkSheet -Range "A1:F1" -BackgroundColor Black -FontColor White
Set-ExcelRange -Worksheet $WorkSheet -Range "B1:B7" -HorizontalAlignment Center
Set-ExcelRange -Worksheet $WorkSheet -Range "C2:F7" -NumberFormat 'Currency'
Close-ExcelPackage -ExcelPackage $ExcelPackage -Show
The result should look similar to this:
Encourage you to watch Doug Finke's (ImportExcel creator) blog and videos:
https://dfinke.github.io/
https://www.youtube.com/playlist?list=PL5uoqS92stXioZw-u-ze_NtvSo0k0K0kq
Hope this helps and stay tuned for more articles in this series.
Posted on January 10, 2020
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
November 28, 2024