From f21fe248fe04f0fa961a248d07b68f5b25b2a299 Mon Sep 17 00:00:00 2001 From: Doug Finke Date: Sat, 18 Apr 2015 17:10:38 -0400 Subject: [PATCH] Suggesting modifications --- ImportExcel.psm1 | 99 +++++++++++++++++++++++++++++++++-------------- TestSheets.xlsx | Bin 0 -> 11343 bytes data/sheet10.txt | 3 ++ data/sheet20.txt | 3 ++ 4 files changed, 76 insertions(+), 29 deletions(-) create mode 100644 TestSheets.xlsx create mode 100644 data/sheet10.txt create mode 100644 data/sheet20.txt diff --git a/ImportExcel.psm1 b/ImportExcel.psm1 index a5e4970..22a3ad4 100644 --- a/ImportExcel.psm1 +++ b/ImportExcel.psm1 @@ -43,37 +43,78 @@ function Import-Excel { } } +function Export-ExcelSheet { + + [CmdletBinding()] + param + ( + [Parameter(Mandatory = $true)] + [String] + $Path, + [String] + $OutputPath = '.\', + [String] + $SheetName, + [string] + $Encoding = 'UTF8', + [string] + $Extension = '.txt', + [string] + $Delimiter = ';' + ) + + $Path = (Resolve-Path $Path).Path + $xl = New-Object -TypeName OfficeOpenXml.ExcelPackage -ArgumentList $Path + $workbook = $xl.Workbook + + $targetSheets = $workbook.Worksheets | Where {$_.Name -Match $SheetName} + + $params = @{} + $PSBoundParameters + $params.Remove("OutputPath") + $params.Remove("SheetName") + $params.NoTypeInformation = $true + + Foreach ($sheet in $targetSheets) + { + Write-Verbose "Exporting sheet: $($sheet.Name)" + + $params.Path = "$($OutputPath)\$($Sheet.Name)$($Extension)" + + Import-Excel $Path -Sheet $($sheet.Name) | Export-Csv @params + } +} + function Import-ExcelAllSheet { - [CmdletBinding()] - param - ( - [Parameter(Mandatory = $true)] - [String] - $Path, - [String] - $OutputPath = '.\', - [string] - $Encoding = 'UTF8', - [string] - $Extension = '.txt', - [string] - $Delimiter = ';' - ) - - $FullName = (Resolve-Path $Path).Path - $xl = New-Object -TypeName OfficeOpenXml.ExcelPackage -ArgumentList $FullName - $workbook = $xl.Workbook - - - Foreach ($sheet in $workbook.Worksheets) - { - Write-Verbose "Exporting sheet: $($sheet.name)" - - Import-Excel -FullName $FullName -Sheet $($sheet.Name) | Export-Csv -Path "$($OutputPath)\$($Sheet.Name)$($Extension)" -Delimiter $Delimiter -NoTypeInformation -Encoding $Encoding - - } - + [CmdletBinding()] + param + ( + [Parameter(Mandatory = $true)] + [String] + $Path, + [String] + $OutputPath = '.\', + [string] + $Encoding = 'UTF8', + [string] + $Extension = '.txt', + [string] + $Delimiter = ';' + ) + + $FullName = (Resolve-Path $Path).Path + $xl = New-Object -TypeName OfficeOpenXml.ExcelPackage -ArgumentList $FullName + $workbook = $xl.Workbook + + + Foreach ($sheet in $workbook.Worksheets) + { + Write-Verbose "Exporting sheet: $($sheet.name)" + + Import-Excel -FullName $FullName -Sheet $($sheet.Name) | Export-Csv -Path "$($OutputPath)\$($Sheet.Name)$($Extension)" -Delimiter $Delimiter -NoTypeInformation -Encoding $Encoding + + } + } function Export-Excel { diff --git a/TestSheets.xlsx b/TestSheets.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..7086adb709f0927ddbbe4d1414d6512414d4f87f GIT binary patch literal 11343 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 literal 0 HcmV?d00001 diff --git a/data/sheet10.txt b/data/sheet10.txt new file mode 100644 index 0000000..25ab43f --- /dev/null +++ b/data/sheet10.txt @@ -0,0 +1,3 @@ +"sheet10" +"" +"sheet10" diff --git a/data/sheet20.txt b/data/sheet20.txt new file mode 100644 index 0000000..66f82c8 --- /dev/null +++ b/data/sheet20.txt @@ -0,0 +1,3 @@ +"sheet20" +"" +"sheet20"