diff --git a/__tests__/Copy-ExcelWorksheet.Tests.ps1 b/__tests__/Copy-ExcelWorksheet.Tests.ps1 index c180027..7f37d3d 100644 --- a/__tests__/Copy-ExcelWorksheet.Tests.ps1 +++ b/__tests__/Copy-ExcelWorksheet.Tests.ps1 @@ -2,10 +2,10 @@ $path1 = "$env:TEMP\Test1.xlsx" $path2 = "$env:TEMP\Test2.xlsx" Remove-item -Path $path1, $path2 -ErrorAction SilentlyContinue -$ProcRange = Get-Process | Export-Excel $path1 -DisplayPropertySet -WorkSheetname Processes -ReturnRange +$ProcRange = Get-Process | Export-Excel $path1 -DisplayPropertySet -WorkSheetname Processes -ReturnRange -if ((Get-Culture).NumberFormat.CurrencySymbol -eq "£") {$OtherCurrencySymbol = "$"} -else {$OtherCurrencySymbol = "£"} +if ((Get-Culture).NumberFormat.CurrencySymbol -eq "�") {$OtherCurrencySymbol = "$"} +else {$OtherCurrencySymbol = "�"} [PSCustOmobject][Ordered]@{ Date = Get-Date Formula1 = '=SUM(F2:G2)' @@ -31,7 +31,7 @@ else {$OtherCurrencySymbol = " Link2 = "https://github.com/dfinke/ImportExcel" # Links are not copied correctly, hopefully this will be fixed at some future date } | Export-Excel -NoNumberConversion IPAddress, StrLeadZero, StrAltPhone2 -WorkSheetname MixedTypes -Path $path2 Describe "Copy-Worksheet" { - Context "Simplest copy"{ + Context "Simplest copy" { BeforeAll { Copy-ExcelWorkSheet -SourceWorkbook $path1 -DestinationWorkbook $path2 $excel = Open-ExcelPackage -Path $path2 @@ -43,12 +43,12 @@ Describe "Copy-Worksheet" { $ws.Dimension.Address | should be $ProcRange } } - Context "Mixed types using a package object"{ + Context "Mixed types using a package object" { BeforeAll { Copy-ExcelWorkSheet -SourceWorkbook $excel -DestinationWorkbook $excel -DestinationWorkSheet "CopyOfMixedTypes" Close-ExcelPackage -ExcelPackage $excel $excel = Open-ExcelPackage -Path $path2 - $ws = $Excel.Workbook.Worksheets[3] + $ws = $Excel.Workbook.Worksheets[3] } it "Copied a worksheet, giving the expected name, number of rows and number of columns " { $Excel.Workbook.Worksheets.count | Should be 3 @@ -60,29 +60,55 @@ Describe "Copy-Worksheet" { it "Copied the expected data into the worksheet " { $ws.Cells[2, 1].Value.Gettype().name | Should be 'DateTime' $ws.Cells[2, 2].Formula | Should be 'SUM(F2:G2)' - $ws.Cells[2, 5].Value.GetType().name | Should be 'String' - $ws.Cells[2, 6].Value.GetType().name | Should be 'String' + $ws.Cells[2, 5].Value.GetType().name | Should be 'String' + $ws.Cells[2, 6].Value.GetType().name | Should be 'String' $ws.Cells[2, 18].Value.GetType().name | Should be 'String' ($ws.Cells[2, 11].Value -is [valuetype] ) | Should be $true ($ws.Cells[2, 12].Value -is [valuetype] ) | Should be $true ($ws.Cells[2, 13].Value -is [valuetype] ) | Should be $true - $ws.Cells[2, 11].Value | Should beLessThan 0 - $ws.Cells[2, 12].Value | Should beLessThan 0 - $ws.Cells[2, 13].Value | Should beLessThan 0 + $ws.Cells[2, 11].Value | Should beLessThan 0 + $ws.Cells[2, 12].Value | Should beLessThan 0 + $ws.Cells[2, 13].Value | Should beLessThan 0 if ((Get-Culture).NumberFormat.NumberGroupSeparator -EQ ",") { ($ws.Cells[2, 8].Value -is [valuetype] ) | Should be $true - $ws.Cells[2, 9].Value.GetType().name | Should be 'String' + $ws.Cells[2, 9].Value.GetType().name | Should be 'String' } elseif ((Get-Culture).NumberFormat.NumberGroupSeparator -EQ ".") { ($ws.Cells[2, 9].Value -is [valuetype] ) | Should be $true - $ws.Cells[2, 8].Value.GetType().name | Should be 'String' + $ws.Cells[2, 8].Value.GetType().name | Should be 'String' } ($ws.Cells[2, 14].Value -is [valuetype] ) | Should be $true - $ws.Cells[2, 15].Value.GetType().name | Should be 'String' - $ws.Cells[2, 16].Value.GetType().name | Should be 'String' - $ws.Cells[2, 17].Value.GetType().name | Should be 'String' + $ws.Cells[2, 15].Value.GetType().name | Should be 'String' + $ws.Cells[2, 16].Value.GetType().name | Should be 'String' + $ws.Cells[2, 17].Value.GetType().name | Should be 'String' ($ws.Cells[2, 19].Value -is [valuetype] ) | Should be $true ($ws.Cells[2, 20].Value -is [valuetype] ) | Should be $true } } + + Context "Copy worksheet should close all files" { + BeforeAll { + $xlfile = "$env:TEMP\reports.xlsx" + $xlfileArchive = "$env:TEMP\reportsArchive.xlsx" + + rm $xlfile -ErrorAction SilentlyContinue + rm $xlfileArchive -ErrorAction SilentlyContinue + + $sheets = echo 1.1.2019 1.2.2019 1.3.2019 1.4.2019 1.5.2019 + + $sheets | ForEach-Object { + "Hello World" | Export-Excel $xlfile -WorksheetName $_ + } + } + + it "Should copy and remove sheets" { + $targetSheets = echo 1.1.2019 1.4.2019 + + $targetSheets | ForEach-Object { + Copy-ExcelWorkSheet -SourceWorkbook $xlfile -DestinationWorkbook $xlfileArchive -SourceWorkSheet $_ -DestinationWorkSheet $_ + } + + $targetSheets | ForEach-Object { Remove-WorkSheet -FullName $xlfile -WorksheetName $_ } + } + } } \ No newline at end of file