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" )] [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 } |