Set-FreezePane.ps1
function Set-FreezePane { <# .SYNOPSIS Set FreezePanes on a specified worksheet .DESCRIPTION Set FreezePanes on a specified worksheet .PARAMETER Worksheet Worksheet to add FreezePanes to .PARAMETER Row The first row with live data. Examples and outcomes: -Row 2 Freeze row 1 -Row 5 Freeze rows 1 through 4 .PARAMETER Column Examples and outcomes: -Column 2 Freeze column 1 -Column 5 Freeze columns 1 through 4 .PARAMETER Passthru If specified, pass the Worksheet back .EXAMPLE $WorkSheet | Set-FreezePane #Freeze the top row of $Worksheet (default parameter values handle this) .EXAMPLE $WorkSheet | Set-FreezePane -Row 2 -Column 4 # Freeze the top row and top 3 columns of $Worksheet .NOTES Thanks to Doug Finke for his example: https://github.com/dfinke/ImportExcel/blob/master/ImportExcel.psm1 Thanks to Philip Thompson for an expansive set of examples on working with EPPlus in PowerShell: https://excelpslib.codeplex.com/ .LINK https://github.com/RamblingCookieMonster/PSExcel .FUNCTIONALITY Excel #> [cmdletbinding()] param( [parameter( Mandatory=$true, ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true)] [OfficeOpenXml.ExcelWorksheet]$WorkSheet, [int]$Row = 2, [int]$Column = 1, [switch]$Passthru ) Process { $WorkSheet.View.FreezePanes($Row, $Column) if($Passthru) { $WorkSheet } } } |