mirror of
https://github.com/dfinke/ImportExcel.git
synced 2025-12-10 13:23:29 +00:00
Tider errors for file open on import; password tests
This commit is contained in:
@@ -321,28 +321,25 @@ function Import-Excel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Process {
|
Process {
|
||||||
Try {
|
#region Open file
|
||||||
#region Open file
|
try {
|
||||||
$Path = (Resolve-Path $Path).ProviderPath
|
$Path = (Resolve-Path $Path).ProviderPath
|
||||||
Write-Verbose "Import Excel workbook '$Path' with worksheet '$Worksheetname'"
|
Write-Verbose "Import Excel workbook '$Path' with worksheet '$Worksheetname'"
|
||||||
|
|
||||||
$Stream = New-Object -TypeName System.IO.FileStream -ArgumentList $Path, 'Open', 'Read', 'ReadWrite'
|
$Stream = New-Object -TypeName System.IO.FileStream -ArgumentList $Path, 'Open', 'Read', 'ReadWrite'
|
||||||
|
}
|
||||||
|
Catch {throw "Could not open $Path ; $_ "}
|
||||||
|
|
||||||
if ($Password) {
|
if ($Password) {
|
||||||
$Excel = New-Object -TypeName OfficeOpenXml.ExcelPackage
|
Try {$Excel = New-Object -TypeName OfficeOpenXml.ExcelPackage
|
||||||
|
$excel.Load( $Stream,$Password)}
|
||||||
Try {
|
Catch { throw "Could not read $Path with the provided password." }
|
||||||
$Excel.Load($Stream,$Password)
|
}
|
||||||
}
|
else {
|
||||||
Catch {
|
try {$Excel = New-Object -TypeName OfficeOpenXml.ExcelPackage -ArgumentList $Stream}
|
||||||
throw "Password '$Password' is not correct."
|
Catch {throw "Failed to read $Path"}
|
||||||
}
|
}
|
||||||
}
|
#endregion
|
||||||
else {
|
Try {
|
||||||
$Excel = New-Object -TypeName OfficeOpenXml.ExcelPackage -ArgumentList $Stream
|
|
||||||
}
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Select worksheet
|
#region Select worksheet
|
||||||
if ($WorksheetName) {
|
if ($WorksheetName) {
|
||||||
if (-not ($Worksheet = $Excel.Workbook.Worksheets[$WorkSheetName])) {
|
if (-not ($Worksheet = $Excel.Workbook.Worksheets[$WorkSheetName])) {
|
||||||
|
|||||||
24
__tests__/PasswordProtection.ps1
Normal file
24
__tests__/PasswordProtection.ps1
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
Describe "Password Support" {
|
||||||
|
Context "Password protected sheet" {
|
||||||
|
BeforeAll {
|
||||||
|
$password = "YouMustRememberThis"
|
||||||
|
$path = "$env:TEMP\Test.xlsx"
|
||||||
|
Remove-Item $path -ErrorAction SilentlyContinue
|
||||||
|
Get-Service | Select-Object -First 10 | Export-excel -password $password -Path $Path -DisplayPropertySet
|
||||||
|
}
|
||||||
|
it "Threw an error when the password was omitted " {
|
||||||
|
{Open-ExcelPackage -Path $path } | should throw
|
||||||
|
}
|
||||||
|
it "Was able to append when the password was included " {
|
||||||
|
{Get-Service | Select-Object -First 10 |
|
||||||
|
Export-excel -password $password -Path $Path -Append } | should not throw
|
||||||
|
}
|
||||||
|
it "Kept the password on the file when it was saved " {
|
||||||
|
{Import-Excel $Path } | should throw
|
||||||
|
}
|
||||||
|
it "Could read the file when the password was included " {
|
||||||
|
(import-excel $path -Password $password).count | should be 20
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -55,7 +55,7 @@ Describe "Number format expansion and setting" {
|
|||||||
Remove-Item -Path $path -ErrorAction SilentlyContinue
|
Remove-Item -Path $path -ErrorAction SilentlyContinue
|
||||||
$n = [datetime]::Now.ToOADate()
|
$n = [datetime]::Now.ToOADate()
|
||||||
|
|
||||||
$excel = 1..32 | ForEach-Object {$n} | Export-Excel -Path $path -PassThru
|
$excel = 1..32 | ForEach-Object {$n} | Export-Excel -Path $path -show -WorksheetName s2 -PassThru
|
||||||
$ws = $excel.Workbook.Worksheets[1]
|
$ws = $excel.Workbook.Worksheets[1]
|
||||||
Set-Format -WorkSheet $ws -Range "A1" -numberFormat 'General'
|
Set-Format -WorkSheet $ws -Range "A1" -numberFormat 'General'
|
||||||
Set-Format -WorkSheet $ws -Range "A2" -numberFormat 'Number'
|
Set-Format -WorkSheet $ws -Range "A2" -numberFormat 'Number'
|
||||||
|
|||||||
Reference in New Issue
Block a user