From d33a040d434880f725d0b056f48b1181d14b1628 Mon Sep 17 00:00:00 2001 From: Doug Finke Date: Wed, 29 Apr 2015 18:52:26 -0400 Subject: [PATCH] added Export-MultipleExcelSheets --- ImportExcel.psm1 | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/ImportExcel.psm1 b/ImportExcel.psm1 index 80c0c02..ce78485 100644 --- a/ImportExcel.psm1 +++ b/ImportExcel.psm1 @@ -179,11 +179,11 @@ function Export-Excel { $targetCell = $ws.Cells[$Row, $ColumnIndex] $targetCell.Value = $TargetData.$Name - + switch ($TargetData.$Name) { - {$_ -is [datetime]} {$targetCell.Style.Numberformat.Format = "m/d/yy h:mm"} + {$_ -is [datetime]} {$targetCell.Style.Numberformat.Format = "m/d/yy h:mm"} } - + $ColumnIndex += 1 } } @@ -289,4 +289,31 @@ function ConvertFrom-ExcelSheet { Import-Excel $Path -Sheet $($sheet.Name) | Export-Csv @params } +} + +function Export-MultipleExcelSheets { + param( + [Parameter(Mandatory)] + $Path, + [Parameter(Mandatory)] + [hashtable]$InfoMap, + [string]$Password, + [Switch]$Show, + [Switch]$AutoSize + ) + + $parameters = @{}+$PSBoundParameters + $parameters.Remove("InfoMap") + $parameters.Remove("Show") + + $parameters.Path = $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath($Path) + + foreach ($entry in $InfoMap.GetEnumerator()) { + Write-Progress -Activity "Exporting" -Status "$($entry.Key)" + $parameters.WorkSheetname=$entry.Key + + & $entry.Value | Export-Excel @parameters + } + + if($Show) {Invoke-Item $Path} } \ No newline at end of file