diff --git a/Export-Excel.ps1 b/Export-Excel.ps1 index f29cbc0..cd330b7 100644 --- a/Export-Excel.ps1 +++ b/Export-Excel.ps1 @@ -45,8 +45,7 @@ function Export-Excel { [string]$TableName, [OfficeOpenXml.Table.TableStyles]$TableStyle="Medium6", [Object[]]$ConditionalFormat, - [string]$ConditionalText, - [System.Drawing.Color]$ConditionalTextColor="Red", + [Object[]]$ConditionalText, [Object[]]$ExcelChartDefinition, [string[]]$HideSheet, [Switch]$KillExcel, @@ -338,10 +337,17 @@ function Export-Excel { } } - if($ConditionalText) { - $rule=$ws.Cells[$ws.Dimension.Address].ConditionalFormatting.AddContainsText(); - $rule.Text = $ConditionalText - $rule.Style.Font.Color.Color = $ConditionalTextColor + if($ConditionalText) { + foreach ($targetConditionalText in $ConditionalText) { + $target = "Add$($targetConditionalText.ConditionalType)" + + $rule=($ws.Cells[$ws.Dimension.Address].ConditionalFormatting).$target() + $rule.Text = $targetConditionalText.Text + $rule.Style.Font.Color.Color = $targetConditionalText.ConditionalTextColor + + $rule.Style.Fill.PatternType=$targetConditionalText.PatternType + $rule.Style.Fill.BackgroundColor.Color=$targetConditionalText.BackgroundColor + } } $pkg.Save() diff --git a/ImportExcel.psm1 b/ImportExcel.psm1 index ad906ed..64cc7a4 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\New-ConditionalText.ps1 . $PSScriptRoot\Export-ExcelSheet.ps1 . $PSScriptRoot\New-ExcelChart.ps1 . $PSScriptRoot\Invoke-Sum.ps1 diff --git a/New-ConditionalText.ps1 b/New-ConditionalText.ps1 new file mode 100644 index 0000000..dde37b1 --- /dev/null +++ b/New-ConditionalText.ps1 @@ -0,0 +1,23 @@ +function New-ConditionalText { + param( + [Parameter(Mandatory=$true)] + $Text, + [System.Drawing.Color]$ConditionalTextColor="DarkRed", + [System.Drawing.Color]$BackgroundColor="LightPink", + [OfficeOpenXml.Style.ExcelFillStyle]$PatternType=[OfficeOpenXml.Style.ExcelFillStyle]::Solid, + [ValidateSet("ContainsText","NotContainsText","BeginsWith","EndsWith")] + $ConditionalType="ContainsText" + ) + + $obj = [PSCustomObject]@{ + Text = $Text + ConditionalTextColor = $ConditionalTextColor + ConditionalType = $ConditionalType + PatternType = $PatternType + BackgroundColor = $BackgroundColor + } + + $obj.pstypenames.Clear() + $obj.pstypenames.Add("ConditionalText") + $obj +} \ No newline at end of file diff --git a/images/ConditionalText2.gif b/images/ConditionalText2.gif new file mode 100644 index 0000000..66df43f Binary files /dev/null and b/images/ConditionalText2.gif differ