From 4b59eb0e7514b9e24b66b82c520b2bdafd1d62c9 Mon Sep 17 00:00:00 2001 From: dfinke Date: Thu, 1 Oct 2015 11:10:57 -0400 Subject: [PATCH] Merged ValidateSet for Encoding and Extension --- Export-ExcelSheet.ps1 | 40 ++++++++++++++++++++++++++++++++++++ ImportExcel.psd1 | 2 +- ImportExcel.psm1 | 48 +------------------------------------------ Install.ps1 | 3 +-- PublishToGallery.ps1 | 2 +- README.md | 5 +++++ 6 files changed, 49 insertions(+), 51 deletions(-) create mode 100644 Export-ExcelSheet.ps1 diff --git a/Export-ExcelSheet.ps1 b/Export-ExcelSheet.ps1 new file mode 100644 index 0000000..fc095e7 --- /dev/null +++ b/Export-ExcelSheet.ps1 @@ -0,0 +1,40 @@ +function Export-ExcelSheet { + + [CmdletBinding()] + param + ( + [Parameter(Mandatory = $true)] + [String]$Path, + [String]$OutputPath = '.\', + [String]$SheetName, + [ValidateSet('ASCII', 'BigEndianUniCode','Default','OEM','UniCode','UTF32','UTF7','UTF8')] + [string]$Encoding = 'UTF8', + [ValidateSet('.txt', '.log','.csv')] + [string]$Extension = '.csv', + [ValidateSet(';', ',')] + [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.Remove('Extension') + $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 + } + + $xl.Dispose() +} diff --git a/ImportExcel.psd1 b/ImportExcel.psd1 index d5d6530..442af4c 100644 --- a/ImportExcel.psd1 +++ b/ImportExcel.psd1 @@ -4,7 +4,7 @@ RootModule = 'ImportExcel.psm1' # Version number of this module. -ModuleVersion = '1.81' +ModuleVersion = '1.82' # ID used to uniquely identify this module GUID = '60dd4136-feff-401a-ba27-a84458c57ede' diff --git a/ImportExcel.psm1 b/ImportExcel.psm1 index 5e2bce3..8d4cca9 100644 --- a/ImportExcel.psm1 +++ b/ImportExcel.psm1 @@ -2,6 +2,7 @@ Add-Type -Path "$($PSScriptRoot)\EPPlus.dll" . $PSScriptRoot\Export-Excel.ps1 . $PSScriptRoot\New-ConditionalFormattingIconSet.ps1 +. $PSScriptRoot\Export-ExcelSheet.ps1 function Import-Excel { param( @@ -52,53 +53,6 @@ function Import-Excel { } } -function Export-ExcelSheet { - - [CmdletBinding()] - param - ( - [Parameter(Mandatory = $true)] - [String] - $Path, - [String] - $OutputPath = '.\', - [String] - $SheetName, - [ValidateSet('ASCII', 'BigEndianUniCode','Default','OEM','UniCode','UTF32','UTF7','UTF8')] - [string] - $Encoding = 'UTF8', - [ValidateSet('.txt', '.log','.csv')] - [string] - $Extension = '.csv', - [ValidateSet(';', ',')] - [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.Remove('Extension') - $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 - } - - $xl.Dispose() -} - function Add-WorkSheet { param( #TODO Use parametersets to allow a workbook to be passed instead of a package diff --git a/Install.ps1 b/Install.ps1 index d41d491..ae39b9c 100644 --- a/Install.ps1 +++ b/Install.ps1 @@ -1,7 +1,6 @@ param([string]$InstallDirectory) -$fileList = echo EPPlus.dll ImportExcel.psd1 ImportExcel.psm1 Export-Excel.ps1 New-ConditionalFormattingIconSet.ps1 - +$fileList = echo EPPlus.dll ImportExcel.psd1 ImportExcel.psm1 Export-Excel.ps1 New-ConditionalFormattingIconSet.ps1 Export-ExcelSheet.ps1 if ('' -eq $InstallDirectory) { diff --git a/PublishToGallery.ps1 b/PublishToGallery.ps1 index 7d9cb4c..f619700 100644 --- a/PublishToGallery.ps1 +++ b/PublishToGallery.ps1 @@ -4,7 +4,7 @@ $p = @{ NuGetApiKey = $NuGetApiKey LicenseUri = "https://github.com/dfinke/ImportExcel/blob/master/LICENSE.txt" Tag = "Excel","EPPlus","Export","Import" - ReleaseNote = "Can now handle data that is _not_ an object" + ReleaseNote = "ValidateSet for Encoding and Extension" ProjectUri = "https://github.com/dfinke/ImportExcel" } diff --git a/README.md b/README.md index 1ffdaf5..8867465 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,11 @@ Know Issues What's new - + +#### 10/1/2015 + +Merged ValidateSet for Encoding and Extension. Thank you [Irwin Strachan](https://github.com/irwins). + #### 9/30/2015 Export-Excel can now handle data that is **not** an object