From 9051ffc0e55bcbc6d4ab07a6a81108ebaca9ba79 Mon Sep 17 00:00:00 2001 From: Kinga Kazala Date: Tue, 5 Jul 2022 15:59:32 +0200 Subject: [PATCH 1/6] example update: format both cells, plus format whole row --- Examples/ConditionalFormatting/Highlight-DiffCells.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Examples/ConditionalFormatting/Highlight-DiffCells.ps1 b/Examples/ConditionalFormatting/Highlight-DiffCells.ps1 index 4cbffac..29f90a6 100644 --- a/Examples/ConditionalFormatting/Highlight-DiffCells.ps1 +++ b/Examples/ConditionalFormatting/Highlight-DiffCells.ps1 @@ -1,6 +1,5 @@ try { Import-Module $PSScriptRoot\..\..\ImportExcel.psd1 } catch { throw ; return } -# Get rid of pre-exisiting sheet $xlSourcefile = "$env:TEMP\ImportExcelExample.xlsx" Write-Verbose -Verbose -Message "Save location: $xlSourcefile" @@ -21,6 +20,7 @@ South,Delaware,712,508 $excel = $data | Export-Excel $xlSourcefile -AutoSize -PassThru -Add-ConditionalFormatting -Worksheet $excel.sheet1 -Range "C2:C10" -ConditionValue '=C2=D2' -RuleType Expression -BackgroundColor Cyan +Add-ConditionalFormatting -Worksheet $excel.sheet1 -Range "C2:D10" -ConditionValue '=$C2=$D2' -RuleType Expression -BackgroundColor ([System.Drawing.Color]::Thistle) -Bold +Add-ConditionalFormatting -Worksheet $excel.sheet1 -Range "A2:D10" -ConditionValue '=$C2=$D2' -RuleType Expression -BackgroundColor ([System.Drawing.Color]::LavenderBlush) Close-ExcelPackage $excel -Show \ No newline at end of file From c4eed8c25d5e16b87d9eaaca6dd347d02c52b140 Mon Sep 17 00:00:00 2001 From: Kinga Kazala Date: Tue, 5 Jul 2022 16:05:40 +0200 Subject: [PATCH 2/6] GetConditionalFormatting.ps1 example added: exports conditional formatting rules in a 'ready to use' format --- .../ConditionalFormatting/GetConditionalFormatting.ps1 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 Examples/ConditionalFormatting/GetConditionalFormatting.ps1 diff --git a/Examples/ConditionalFormatting/GetConditionalFormatting.ps1 b/Examples/ConditionalFormatting/GetConditionalFormatting.ps1 new file mode 100644 index 0000000..b25d031 --- /dev/null +++ b/Examples/ConditionalFormatting/GetConditionalFormatting.ps1 @@ -0,0 +1,10 @@ +try { Import-Module $PSScriptRoot\..\..\ImportExcel.psd1 } catch { throw ; return} + +$xlSourcefile = "$env:TEMP\ImportExcelExample.xlsx" +$excel = Open-ExcelPackage -Path $xlSourcefile + +$excel.Workbook.Worksheets | ForEach-Object { + $_.ConditionalFormatting | ForEach-Object { + Write-Host "Add-ConditionalFormatting -Worksheet `$excel[""$worksheetName""] -Range '$($_.Address)' -ConditionValue '$($_.Formula)' -RuleType $($_.Type) " + } +} From b92ea56fe9fa563a8a8ed541a3fb09cc4e10fbe4 Mon Sep 17 00:00:00 2001 From: Kinga Kazala Date: Mon, 11 Jul 2022 07:58:29 +0200 Subject: [PATCH 3/6] GetConditionalFormatting.xlsx added --- .../GetConditionalFormatting.xlsx | Bin 0 -> 8999 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Examples/ConditionalFormatting/GetConditionalFormatting.xlsx diff --git a/Examples/ConditionalFormatting/GetConditionalFormatting.xlsx b/Examples/ConditionalFormatting/GetConditionalFormatting.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..bfa1cba7e4c1331d4f28d4c0e3255b742f35b780 GIT binary patch literal 8999 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 Date: Wed, 13 Jul 2022 09:26:00 +0200 Subject: [PATCH 4/6] fix: corrected the script to include sheet name, and to add '=' in the ConditionValue --- .../ConditionalFormatting/GetConditionalFormatting.ps1 | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Examples/ConditionalFormatting/GetConditionalFormatting.ps1 b/Examples/ConditionalFormatting/GetConditionalFormatting.ps1 index b25d031..4f2e763 100644 --- a/Examples/ConditionalFormatting/GetConditionalFormatting.ps1 +++ b/Examples/ConditionalFormatting/GetConditionalFormatting.ps1 @@ -1,10 +1,13 @@ try { Import-Module $PSScriptRoot\..\..\ImportExcel.psd1 } catch { throw ; return} -$xlSourcefile = "$env:TEMP\ImportExcelExample.xlsx" +# This example is using Excel generated by Highlight-DiffCells.ps1 +# The displayed rule should be the same as in the PS script +$xlSourcefile = "$env:TEMP.\GetConditionalFormatting.xlsx" $excel = Open-ExcelPackage -Path $xlSourcefile $excel.Workbook.Worksheets | ForEach-Object { + $wsNme= $_.Name $_.ConditionalFormatting | ForEach-Object { - Write-Host "Add-ConditionalFormatting -Worksheet `$excel[""$worksheetName""] -Range '$($_.Address)' -ConditionValue '$($_.Formula)' -RuleType $($_.Type) " + "Add-ConditionalFormatting -Worksheet `$excel[""$wsNme""] -Range '$($_.Address)' -ConditionValue '=$($_.Formula)' -RuleType $($_.Type) " } } From 724ed6b197c345ef906bf85aad616674e8e52989 Mon Sep 17 00:00:00 2001 From: Kinga Kazala Date: Wed, 13 Jul 2022 09:34:30 +0200 Subject: [PATCH 5/6] Get-ConditionalFormatting function added --- .../GetConditionalFormatting.ps1 | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/Examples/ConditionalFormatting/GetConditionalFormatting.ps1 b/Examples/ConditionalFormatting/GetConditionalFormatting.ps1 index 4f2e763..a9bc3a9 100644 --- a/Examples/ConditionalFormatting/GetConditionalFormatting.ps1 +++ b/Examples/ConditionalFormatting/GetConditionalFormatting.ps1 @@ -2,12 +2,20 @@ # This example is using Excel generated by Highlight-DiffCells.ps1 # The displayed rule should be the same as in the PS script -$xlSourcefile = "$env:TEMP.\GetConditionalFormatting.xlsx" -$excel = Open-ExcelPackage -Path $xlSourcefile -$excel.Workbook.Worksheets | ForEach-Object { - $wsNme= $_.Name - $_.ConditionalFormatting | ForEach-Object { - "Add-ConditionalFormatting -Worksheet `$excel[""$wsNme""] -Range '$($_.Address)' -ConditionValue '=$($_.Formula)' -RuleType $($_.Type) " +function Get-ConditionalFormatting { + param ( + [string] $xlSourcefile + ) + $excel = Open-ExcelPackage -Path $xlSourcefile + + $excel.Workbook.Worksheets | ForEach-Object { + $wsNme = $_.Name + $_.ConditionalFormatting | ForEach-Object { + "Add-ConditionalFormatting -Worksheet `$excel[""$wsNme""] -Range '$($_.Address)' -ConditionValue '=$($_.Formula)' -RuleType $($_.Type) " + } } } + +$xlSourcefile = "$env:TEMP.\GetConditionalFormatting.xlsx" +Get-ConditionalFormatting -xlSourcefile $xlSourcefile \ No newline at end of file From 0990c0ef091921dd83e3f1b29b0e4925be77fb34 Mon Sep 17 00:00:00 2001 From: dfinke Date: Wed, 13 Jul 2022 09:50:02 -0400 Subject: [PATCH 6/6] used $PSScriptRoot instead --- Examples/ConditionalFormatting/GetConditionalFormatting.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Examples/ConditionalFormatting/GetConditionalFormatting.ps1 b/Examples/ConditionalFormatting/GetConditionalFormatting.ps1 index a9bc3a9..e123fc8 100644 --- a/Examples/ConditionalFormatting/GetConditionalFormatting.ps1 +++ b/Examples/ConditionalFormatting/GetConditionalFormatting.ps1 @@ -17,5 +17,5 @@ function Get-ConditionalFormatting { } } -$xlSourcefile = "$env:TEMP.\GetConditionalFormatting.xlsx" +$xlSourcefile = "$PSScriptRoot\GetConditionalFormatting.xlsx" Get-ConditionalFormatting -xlSourcefile $xlSourcefile \ No newline at end of file