mirror of
https://github.com/dfinke/ImportExcel.git
synced 2026-01-04 01:23:22 +00:00
156 lines
5.4 KiB
Markdown
156 lines
5.4 KiB
Markdown
PowerShell Import-Excel
|
|
-
|
|
This PowerShell Module wraps the .NET EPPlus DLL (included). Easily integrate reading and writing Excel spreadsheets into PowerShell, without launching Excel in the background. You can also automate the creation of Pivot Tables and Charts.
|
|
|
|
|
|
Install
|
|
-
|
|
To install in your personal modules folder (e.g. ~\Documents\WindowsPowerShell\Modules), run:
|
|
|
|
```powershell
|
|
iex (new-object System.Net.WebClient).DownloadString('https://raw.github.com/dfinke/ImportExcel/master/Install.ps1')
|
|
```
|
|
|
|
Know Issues
|
|
-
|
|
* Using `-IncludePivotTable`, if that pivot table name exists, you'll get an error.
|
|
* Investigating a soloution
|
|
* *Workaround* delete the Excel file first, then do the export
|
|
|
|
What's new
|
|
-
|
|
#### 5/17/2015
|
|
* Added three parameters:
|
|
* FreezeTopRow - Freezes the first row of the data
|
|
* AutoFilter - Enables filtering for the data in the sheet
|
|
* BoldFirstRow - Bolds the first row of data, the column headers
|
|
|
|
Example
|
|
|
|
Get-CimInstance win32_service |
|
|
select state, accept*, start*, caption |
|
|
Export-Excel test.xlsx -Show -BoldFirstRow -AutoFilter -FreezeTopRow -AutoSize
|
|
|
|

|
|
|
|
|
|
#### 5/4/2015
|
|
* Published to PowerShell Gallery. In PowerShell v5 use `Find-Module importexcel` then `Find-Module importexcel | Install-Module`
|
|
|
|
|
|
#### 4/27/2015
|
|
* datetime properties were displaying as ints, now are formatted
|
|
|
|
#### 4/25/2015
|
|
* Now you can create multiple Pivot tables in one pass
|
|
* Thanks to [pscookiemonster](https://twitter.com/pscookiemonster), he submitted a repro case to the EPPlus CodePlex project and got it fixed
|
|
|
|
#### Example
|
|
|
|
$ps = ps
|
|
|
|
$ps |
|
|
Export-Excel .\testExport.xlsx -WorkSheetname memory `
|
|
-IncludePivotTable -PivotRows Company -PivotData PM `
|
|
-IncludePivotChart -ChartType PieExploded3D
|
|
$ps |
|
|
Export-Excel .\testExport.xlsx -WorkSheetname handles `
|
|
-IncludePivotTable -PivotRows Company -PivotData Handles `
|
|
-IncludePivotChart -ChartType PieExploded3D -Show
|
|
|
|

|
|
|
|
#### 4/20/2015
|
|
* Included and embellished [Claus Nielsen](https://github.com/Claustn) function to take all sheets in an Excel file workbook and create a text file for each `ConvertFrom-ExcelSheet`
|
|
* Renamed `Export-MultipleExcelSheets` to `ConvertFrom-ExcelSheet`
|
|
|
|
#### 4/13/2015
|
|
* You can add a title to the Excel "Report" `Title`, `TitleFillPattern`, `TitleBold`, `TitleSize`, `TitleBackgroundColor`
|
|
* Thanks to [Irwin Strachan](http://pshirwin.wordpress.com) for this and other great suggestions, testing and more
|
|
|
|
|
|
#### 4/10/2015
|
|
* Renamed `AutoFitColumns` to `AutoSize`
|
|
* Implemented `Export-MultipleExcelSheets`
|
|
* Implemented `-Password` for a worksheet
|
|
* Replaced `-Force` switch with `-NoClobber` switch
|
|
* Added examples for `Get-Help`
|
|
* If Pivot table is requested, that sheet becomes the tab selected
|
|
|
|
#### 4/8/2015
|
|
* Implemented exporting data to **named sheets** via the -WorkSheename parameter.
|
|
|
|
Examples
|
|
-
|
|
`gsv | Export-Excel .\test.xlsx -WorkSheetname Services`
|
|
|
|
`dir -file | Export-Excel .\test.xlsx -WorkSheetname Files`
|
|
|
|
`ps | Export-Excel .\test.xlsx -WorkSheetname Processes -IncludePivotTable -Show -PivotRows Company -PivotData PM`
|
|
|
|
#### Convert (All or Some) Excel Sheets to Text files
|
|
|
|
Reads each sheet in TestSheets.xlsx and outputs it to the data directory as the sheet name with the extension .txt
|
|
|
|
ConvertFrom-ExcelSheet .\TestSheets.xlsx .\data
|
|
|
|
Reads and outputs sheets like Sheet10 and Sheet20 form TestSheets.xlsx and outputs it to the data directory as the sheet name with the extension .txt
|
|
|
|
ConvertFrom-ExcelSheet .\TestSheets.xlsx .\data sheet?0
|
|
|
|
#### Example Adding a Title
|
|
You can set the pattern, size and of if the title is bold.
|
|
|
|
$p=@{
|
|
Title = "Process Report as of $(Get-Date)"
|
|
TitleFillPattern = "LightTrellis"
|
|
TitleSize = 18
|
|
TitleBold = $true
|
|
|
|
Path = "$pwd\testExport.xlsx"
|
|
Show = $true
|
|
AutoSize = $true
|
|
}
|
|
|
|
Get-Process |
|
|
Where Company | Select Company, PM |
|
|
Export-Excel @p
|
|
|
|

|
|
|
|
#### Example Export-MultipleExcelSheets
|
|

|
|
|
|
$p = Get-Process
|
|
|
|
$DataToGather = @{
|
|
PM = {$p|select company, pm}
|
|
Handles = {$p|select company, handles}
|
|
Services = {gsv}
|
|
Files = {dir -File}
|
|
Albums = {(Invoke-RestMethod http://www.dougfinke.com/powershellfordevelopers/albums.js)}
|
|
}
|
|
|
|
Export-MultipleExcelSheets -Show -AutoSize .\testExport.xlsx $DataToGather
|
|
|
|
|
|
|
|
***NOTE*** If the sheet exists when using *-WorkSheetname* parameter, it will be deleted and then added with the new data.
|
|
|
|
Get-Process Exported to Excel
|
|
-
|
|
### Total Physical Memory Grouped By Company
|
|

|
|
|
|
PowerShell Excel EPPlus Video
|
|
-
|
|
Click on this image to watch the short video.
|
|
|
|
[](http://dougfinke.com/powershellvideos/ExportExcel/ExportExcel.html)
|
|
|
|
### Importing data from an Excel spreadsheet
|
|
|
|

|
|
|
|
You can also find EPPLus on [Nuget](https://www.nuget.org/packages/EPPlus/).
|