Public/New-ConditionalText.ps1
function New-ConditionalText { [CmdletBinding()] [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseShouldProcessForStateChangingFunctions', '',Justification='Does not change system State')] param( #[Parameter(Mandatory=$true)] [Alias('ConditionValue')] $Text, [Alias('ForeGroundColor')] $ConditionalTextColor=[System.Drawing.Color]::DarkRed, $BackgroundColor=[System.Drawing.Color]::LightPink, [String]$Range, [OfficeOpenXml.Style.ExcelFillStyle]$PatternType=[OfficeOpenXml.Style.ExcelFillStyle]::Solid, [ValidateSet( 'LessThan', 'LessThanOrEqual', 'GreaterThan', 'GreaterThanOrEqual', 'Equal', 'NotEqual', 'Top', 'TopPercent', 'Bottom', 'BottomPercent', 'ContainsText', 'NotContainsText', 'BeginsWith', 'EndsWith', 'ContainsBlanks', 'NotContainsBlanks', 'ContainsErrors', 'NotContainsErrors', 'DuplicateValues', 'UniqueValues', 'Tomorrow', 'Today', 'Yesterday', 'Last7Days', 'NextWeek', 'ThisWeek', 'LastWeek', 'NextMonth', 'ThisMonth', 'LastMonth', 'AboveAverage', 'AboveOrEqualAverage', 'BelowAverage', 'BelowOrEqualAverage', 'Expression' )] [Alias('RuleType')] $ConditionalType='ContainsText' ) $obj = [PSCustomObject]@{ Text = $Text ConditionalTextColor = $ConditionalTextColor ConditionalType = $ConditionalType PatternType = $PatternType Range = $Range BackgroundColor = $BackgroundColor } $obj.pstypenames.Clear() $obj.pstypenames.Add("ConditionalText") $obj } |