diff --git a/AddConditionalFormatting.ps1 b/AddConditionalFormatting.ps1 index 93fc1ca..05a04d4 100644 --- a/AddConditionalFormatting.ps1 +++ b/AddConditionalFormatting.ps1 @@ -106,11 +106,11 @@ #Text color for matching objects [Parameter(ParameterSetName = "NamedRule")] [Alias("ForegroundColour")] - [System.Drawing.Color]$ForegroundColor, + $ForegroundColor, #Color for databar type charts [Parameter(Mandatory = $true, ParameterSetName = "DataBar")] [Alias("DataBarColour")] - [System.Drawing.Color]$DataBarColor, + $DataBarColor, #One of the three-icon set types (e.g. Traffic Lights) [Parameter(Mandatory = $true, ParameterSetName = "ThreeIconSet")] [OfficeOpenXml.ConditionalFormatting.eExcelconditionalFormatting3IconsSetType]$ThreeIconsSet, @@ -134,13 +134,13 @@ $ConditionValue2, #Background color for matching items [Parameter(ParameterSetName = "NamedRule")] - [System.Drawing.Color]$BackgroundColor, + $BackgroundColor, #Background pattern for matching items [Parameter(ParameterSetName = "NamedRule")] [OfficeOpenXml.Style.ExcelFillStyle]$BackgroundPattern = [OfficeOpenXml.Style.ExcelFillStyle]::None , #Secondary color when a background pattern requires it [Parameter(ParameterSetName = "NamedRule")] - [System.Drawing.Color]$PatternColor, + $PatternColor, #Sets the numeric format for matching items [Parameter(ParameterSetName = "NamedRule")] $NumberFormat, @@ -193,10 +193,12 @@ if (-not $worksheet -or $WorkSheet -isnot [OfficeOpenXml.ExcelWorksheet]) {write-warning "You need to provide a worksheet object." ; return} #region create a rule of the right type if ($RuleType -match 'IconSet$') {Write-warning -Message "You cannot configure a Icon-Set rule in this way; please use -$RuleType ." ; return} - if ($PSBoundParameters.ContainsKey("ThreeIconsSet" ) ) {$rule = $WorkSheet.ConditionalFormatting.AddThreeIconSet($Address , $ThreeIconsSet)} + if ($PSBoundParameters.ContainsKey("DataBarColor" ) ) {if ($DataBarColor -is [string]) {$DataBarColor = [System.Drawing.Color]::$DataBarColor } + $rule = $WorkSheet.ConditionalFormatting.AddDatabar( $Address , $DataBarColor ) + } + elseif ($PSBoundParameters.ContainsKey("ThreeIconsSet" ) ) {$rule = $WorkSheet.ConditionalFormatting.AddThreeIconSet($Address , $ThreeIconsSet)} elseif ($PSBoundParameters.ContainsKey("FourIconsSet" ) ) {$rule = $WorkSheet.ConditionalFormatting.AddFourIconSet( $Address , $FourIconsSet )} elseif ($PSBoundParameters.ContainsKey("FiveIconsSet" ) ) {$rule = $WorkSheet.ConditionalFormatting.AddFiveIconSet( $Address , $FiveIconsSet )} - elseif ($PSBoundParameters.ContainsKey("DataBarColor" ) ) {$rule = $WorkSheet.ConditionalFormatting.AddDatabar( $Address , $DataBarColor )} else {$rule = ($WorkSheet.ConditionalFormatting)."Add$RuleType"($Address ) } if ($Reverse) { if ($rule.type -match 'IconSet$' ) {$rule.reverse = $true} @@ -255,10 +257,13 @@ if ($PSBoundParameters.ContainsKey("Bold" ) ) {$rule.Style.Font.Bold = [boolean]$Bold } if ($PSBoundParameters.ContainsKey("Italic" ) ) {$rule.Style.Font.Italic = [boolean]$Italic } if ($PSBoundParameters.ContainsKey("StrikeThru" ) ) {$rule.Style.Font.Strike = [boolean]$StrikeThru } - if ($PSBoundParameters.ContainsKey("ForeGroundColor" ) ) {$rule.Style.Font.Color.color = $ForeGroundColor } - if ($PSBoundParameters.ContainsKey("BackgroundColor" ) ) {$rule.Style.Fill.BackgroundColor.color = $BackgroundColor } + if ($PSBoundParameters.ContainsKey("ForeGroundColor" ) ) {if ($ForeGroundColor -is [string]) {$ForeGroundColor = [System.Drawing.Color]::$ForeGroundColor } + $rule.Style.Font.Color.color = $ForeGroundColor } + if ($PSBoundParameters.ContainsKey("BackgroundColor" ) ) {if ($BackgroundColor -is [string]) {$BackgroundColor = [System.Drawing.Color]::$BackgroundColor } + $rule.Style.Fill.BackgroundColor.color = $BackgroundColor } if ($PSBoundParameters.ContainsKey("BackgroundPattern") ) {$rule.Style.Fill.PatternType = $BackgroundPattern } - if ($PSBoundParameters.ContainsKey("PatternColor" ) ) {$rule.Style.Fill.PatternColor.color = $PatternColor } + if ($PSBoundParameters.ContainsKey("PatternColor" ) ) {if ($PatternColor -is [string]) {$PatternColor = [System.Drawing.Color]::$PatternColor } + $rule.Style.Fill.PatternColor.color = $PatternColor } #endregion #Allow further tweaking by returning the rule, if passthru specified if ($Passthru) {$rule} diff --git a/Export-Excel.ps1 b/Export-Excel.ps1 index 586b25b..e778fc8 100644 --- a/Export-Excel.ps1 +++ b/Export-Excel.ps1 @@ -428,7 +428,7 @@ [OfficeOpenXml.Style.ExcelFillStyle]$TitleFillPattern = 'Solid', [Switch]$TitleBold, [Int]$TitleSize = 22, - [System.Drawing.Color]$TitleBackgroundColor, + $TitleBackgroundColor, [Switch]$IncludePivotTable, [String]$PivotTableName, [String[]]$PivotRows, @@ -677,6 +677,7 @@ $ws.Cells[$Row, $StartColumn].Style.Font.Bold = $True } if ($TitleBackgroundColor ) { + if ($TitleBackgroundColor -is [string]) {$TitleBackgroundColor = [System.Drawing.Color]::$TitleBackgroundColor } $ws.Cells[$Row, $StartColumn].Style.Fill.PatternType = $TitleFillPattern $ws.Cells[$Row, $StartColumn].Style.Fill.BackgroundColor.SetColor($TitleBackgroundColor) } diff --git a/Join-Worksheet.ps1 b/Join-Worksheet.ps1 index 8f5d5c5..bea36db 100644 --- a/Join-Worksheet.ps1 +++ b/Join-Worksheet.ps1 @@ -89,7 +89,7 @@ #Sets the fill pattern for the title cell. [OfficeOpenXml.Style.ExcelFillStyle]$TitleFillPattern = 'Solid', #Sets the cell background color for the title cell. - [System.Drawing.Color]$TitleBackgroundColor, + $TitleBackgroundColor, #Sets the title in boldface type. [Switch]$TitleBold, #Sets the point size for the title. @@ -149,6 +149,7 @@ if ($TitleBold) {$destinationSheet.Cells[1, 1].Style.Font.Bold = $True } #Can only set TitleBackgroundColor if TitleFillPattern is something other than None. if ($TitleBackgroundColor -AND ($TitleFillPattern -ne 'None')) { + if ($TitleBackgroundColor -is [string]) {$TitleBackgroundColor = [System.Drawing.Color]::$TitleBackgroundColor } $destinationSheet.Cells[1, 1].Style.Fill.PatternType = $TitleFillPattern $destinationSheet.Cells[1, 1].Style.Fill.BackgroundColor.SetColor($TitleBackgroundColor) } diff --git a/Merge-worksheet.ps1 b/Merge-worksheet.ps1 index 9f0129a..d733e8a 100644 --- a/Merge-worksheet.ps1 +++ b/Merge-worksheet.ps1 @@ -108,13 +108,13 @@ #Name of a column which is unique used to pair up rows from the refence and difference side, default is "Name". $Key = "Name" , #Sets the font color for the "key" field; this means you can filter by color to get only changed rows. - [System.Drawing.Color]$KeyFontColor = [System.Drawing.Color]::DarkRed , + $KeyFontColor = [System.Drawing.Color]::DarkRed , #Sets the background color for changed rows. - [System.Drawing.Color]$ChangeBackgroundColor = [System.Drawing.Color]::Orange, + $ChangeBackgroundColor = [System.Drawing.Color]::Orange, #Sets the background color for rows in the reference but deleted from the difference sheet. - [System.Drawing.Color]$DeleteBackgroundColor = [System.Drawing.Color]::LightPink, + $DeleteBackgroundColor = [System.Drawing.Color]::LightPink, #Sets the background color for rows not in the reference but added to the difference sheet. - [System.Drawing.Color]$AddBackgroundColor = [System.Drawing.Color]::PaleGreen, + $AddBackgroundColor = [System.Drawing.Color]::PaleGreen, #if specified, hides the rows in the spreadsheet that are equal and only shows changes, added or deleted rows. [switch]$HideEqual , #If specified, outputs the data to the pipeline (you can add -WhatIf so the command only outputs to the pipeline). @@ -402,13 +402,13 @@ Function Merge-MultipleSheets { #Name of a column which is unique used to pair up rows from the reference and difference sides, default is "Name". $Key = "Name" , #Sets the font color for the Key field; this means you can filter by color to get only changed rows. - [System.Drawing.Color]$KeyFontColor = [System.Drawing.Color]::Red, + $KeyFontColor = [System.Drawing.Color]::Red, #Sets the background color for changed rows. - [System.Drawing.Color]$ChangeBackgroundColor = [System.Drawing.Color]::Orange, + $ChangeBackgroundColor = [System.Drawing.Color]::Orange, #Sets the background color for rows in the reference but deleted from the difference sheet. - [System.Drawing.Color]$DeleteBackgroundColor = [System.Drawing.Color]::LightPink, + $DeleteBackgroundColor = [System.Drawing.Color]::LightPink, #Sets the background color for rows not in the reference but added to the difference sheet. - [System.Drawing.Color]$AddBackgroundColor = [System.Drawing.Color]::Orange, + $AddBackgroundColor = [System.Drawing.Color]::Orange, #If specified, hides the columns in the spreadsheet that contain the row numbers. [switch]$HideRowNumbers , #If specified, outputs the data to the pipeline (you can add -whatif so it the command only outputs to the pipeline). diff --git a/New-ConditionalText.ps1 b/New-ConditionalText.ps1 index e33aa19..29d58fe 100644 --- a/New-ConditionalText.ps1 +++ b/New-ConditionalText.ps1 @@ -49,8 +49,8 @@ function New-ConditionalText { [Alias("ConditionValue")] $Text, [Alias("ForeGroundColor")] - [System.Drawing.Color]$ConditionalTextColor=[System.Drawing.Color]::DarkRed, - [System.Drawing.Color]$BackgroundColor=[System.Drawing.Color]::LightPink, + $ConditionalTextColor=[System.Drawing.Color]::DarkRed, + $BackgroundColor=[System.Drawing.Color]::LightPink, [String]$Range, [OfficeOpenXml.Style.ExcelFillStyle]$PatternType=[OfficeOpenXml.Style.ExcelFillStyle]::Solid, [ValidateSet( diff --git a/Send-SqlDataToExcel.ps1 b/Send-SqlDataToExcel.ps1 index a02e467..603de6a 100644 --- a/Send-SqlDataToExcel.ps1 +++ b/Send-SqlDataToExcel.ps1 @@ -196,7 +196,7 @@ [OfficeOpenXml.Style.ExcelFillStyle]$TitleFillPattern = 'None', [Switch]$TitleBold, [Int]$TitleSize = 22, - [System.Drawing.Color]$TitleBackgroundColor, + $TitleBackgroundColor, [String]$Password, [Hashtable]$PivotTableDefinition, [Switch]$IncludePivotTable, diff --git a/Set-CellStyle.ps1 b/Set-CellStyle.ps1 index 43cef70..a99d9be 100644 --- a/Set-CellStyle.ps1 +++ b/Set-CellStyle.ps1 @@ -4,9 +4,9 @@ $Row, $LastColumn, [OfficeOpenXml.Style.ExcelFillStyle]$Pattern, - [System.Drawing.Color]$Color + $Color ) - + if ($Color -is [string]) {$Color = [System.Drawing.Color]::$Color } $t=$WorkSheet.Cells["A$($Row):$($LastColumn)$($Row)"] $t.Style.Fill.PatternType=$Pattern $t.Style.Fill.BackgroundColor.SetColor($Color) diff --git a/Set-Column.ps1 b/Set-Column.ps1 index 0779ef4..d1f3590 100644 --- a/Set-Column.ps1 +++ b/Set-Column.ps1 @@ -71,7 +71,7 @@ #Style of border to draw around the row. [OfficeOpenXml.Style.ExcelBorderStyle]$BorderAround, #Colour for the text - if none specified it will be left as it it is. - [System.Drawing.Color]$FontColor, + $FontColor, #Make text bold; use -Bold:$false to remove bold. [Switch]$Bold, #Make text italic; use -Italic:$false to remove italic. @@ -89,12 +89,12 @@ #Point size for the text. [float]$FontSize, #Change background color. - [System.Drawing.Color]$BackgroundColor, + $BackgroundColor, #Background pattern - "Solid" by default. [OfficeOpenXml.Style.ExcelFillStyle]$BackgroundPattern = [OfficeOpenXml.Style.ExcelFillStyle]::Solid , #Secondary color for background pattern. [Alias("PatternColour")] - [System.Drawing.Color]$PatternColor, + $PatternColor, #Turn on Text-Wrapping; use -WrapText:$false to turn off wrapping. [Switch]$WrapText, #Position cell contents to Left, Right, Center etc. Default is "General". diff --git a/Set-Row.ps1 b/Set-Row.ps1 index e8b4392..d286090 100644 --- a/Set-Row.ps1 +++ b/Set-Row.ps1 @@ -62,7 +62,7 @@ #Style of border to draw around the row. [OfficeOpenXml.Style.ExcelBorderStyle]$BorderAround, #Color of the border. - [System.Drawing.Color]$BorderColor=[System.Drawing.Color]::Black, + $BorderColor=[System.Drawing.Color]::Black, #Style for the bottom border. [OfficeOpenXml.Style.ExcelBorderStyle]$BorderBottom, #Style for the top border. @@ -72,7 +72,7 @@ #Style for the right border. [OfficeOpenXml.Style.ExcelBorderStyle]$BorderRight, #Color for the text - if none specified it will be left as it it is. - [System.Drawing.Color]$FontColor, + $FontColor, #Make text bold; use -Bold:$false to remove bold. [Switch]$Bold, #Make text italic; use -Italic:$false to remove italic. @@ -90,12 +90,12 @@ #Point size for the text. [float]$FontSize, #Change background color. - [System.Drawing.Color]$BackgroundColor, + $BackgroundColor, #Background pattern - solid by default. [OfficeOpenXml.Style.ExcelFillStyle]$BackgroundPattern = [OfficeOpenXml.Style.ExcelFillStyle]::Solid , #Secondary color for background pattern. [Alias("PatternColour")] - [System.Drawing.Color]$PatternColor, + $PatternColor, #Turn on Text-Wrapping; use -WrapText:$false to turn off wrapping. [Switch]$WrapText, #Position cell contents to Left, Right, Center etc. default is 'General'. diff --git a/SetFormat.ps1 b/SetFormat.ps1 index b6a3c55..4a3487a 100644 --- a/SetFormat.ps1 +++ b/SetFormat.ps1 @@ -45,7 +45,7 @@ #Style of border to draw around the range. [OfficeOpenXml.Style.ExcelBorderStyle]$BorderAround, #Color of the border. - [System.Drawing.Color]$BorderColor=[System.Drawing.Color]::Black, + $BorderColor=[System.Drawing.Color]::Black, #Style for the bottom border. [OfficeOpenXml.Style.ExcelBorderStyle]$BorderBottom, #Style for the top border. @@ -55,7 +55,7 @@ #Style for the right border. [OfficeOpenXml.Style.ExcelBorderStyle]$BorderRight, #Colour for the text - if none is specified it will be left as it is. - [System.Drawing.Color]$FontColor, + $FontColor, #Value for the cell. $Value, #Formula for the cell. @@ -71,7 +71,7 @@ #Underline the text using the underline style in -UnderlineType; use -Underline:$false to remove underlining. [Switch]$Underline, #Specifies whether underlining should be single or double, normal or accounting mode. The default is "Single". - [OfficeOpenXml.Style.ExcelUnderLineType]$UnderLineType = [OfficeOpenXml.Style.ExcelUnderLineType]::Single, + [OfficeOpenXml.Style.ExcelUnderLineType]$UnderLineType = [OfficeOpenXml.Style.ExcelUnderLineType]::Single, #Strike through text; use -Strikethru:$false to remove Strike through [Switch]$StrikeThru, #Subscript or Superscript (or none). @@ -81,12 +81,12 @@ #Point size for the text. [float]$FontSize, #Change background color. - [System.Drawing.Color]$BackgroundColor, + $BackgroundColor, #Background pattern - Solid by default. [OfficeOpenXml.Style.ExcelFillStyle]$BackgroundPattern = [OfficeOpenXml.Style.ExcelFillStyle]::Solid , #Secondary color for background pattern. [Alias("PatternColour")] - [System.Drawing.Color]$PatternColor, + $PatternColor, #Turn on Text-Wrapping; use -WrapText:$false to turn off wrapping. [Switch]$WrapText, #Position cell contents to Left, Right, Center etc. default is 'General'. @@ -150,6 +150,7 @@ $Range.Style.Font.VerticalAlign = $FontShift } if ($PSBoundParameters.ContainsKey('FontColor')){ + if ($FontColor -is [string]) {$FontColor = [System.Drawing.Color]::$FontColor } $Range.Style.Font.Color.SetColor( $FontColor) } if ($PSBoundParameters.ContainsKey('TextRotation')) { @@ -179,6 +180,7 @@ if ($PSBoundParameters.ContainsKey('NumberFormat')) { $Range.Style.Numberformat.Format = (Expand-NumberFormat $NumberFormat) } + if ($BorderColor -is [string]) {$BorderColor = [System.Drawing.Color]::$BorderColor } if ($PSBoundParameters.ContainsKey('BorderAround')) { $Range.Style.Border.BorderAround($BorderAround, $BorderColor) } @@ -200,8 +202,10 @@ } if ($PSBoundParameters.ContainsKey('BackgroundColor')) { $Range.Style.Fill.PatternType = $BackgroundPattern + if ($BackgroundColor -is [string]) {$BackgroundColor = [System.Drawing.Color]::$BackgroundColor } $Range.Style.Fill.BackgroundColor.SetColor($BackgroundColor) if ($PatternColor) { + if ($PatternColor -is [string]) {$PatternColor = [System.Drawing.Color]::$PatternColor } $Range.Style.Fill.PatternColor.SetColor( $PatternColor) } } diff --git a/compare-worksheet.ps1 b/compare-worksheet.ps1 index a2430d8..e43cb93 100644 --- a/compare-worksheet.ps1 +++ b/compare-worksheet.ps1 @@ -91,15 +91,15 @@ #The row from where we start to import data: all rows above the start row are disregarded. By default, this is the first row. [int]$Startrow = 1, #If specified, highlights all the cells - so you can make Equal cells one color, and Different cells another. - [System.Drawing.Color]$AllDataBackgroundColor, + $AllDataBackgroundColor, #If specified, highlights the rows with differences. - [System.Drawing.Color]$BackgroundColor, + $BackgroundColor, #If specified identifies the tabs which contain difference rows (ignored if -BackgroundColor is omitted). - [System.Drawing.Color]$TabColor, + $TabColor, #Name of a column which is unique and will be used to add a row to the DIFF object, defaults to "Name". $Key = "Name" , #If specified, highlights the DIFF columns in rows which have the same key. - [System.Drawing.Color]$FontColor, + $FontColor, #If specified, opens the Excel workbooks instead of outputting the diff to the console (unless -PassThru is also specified). [Switch]$Show, #If specified, the command tries to the show the DIFF in a Grid-View and not on the console. (unless-PassThru is also specified). This works best with few columns selected, and requires a key. @@ -182,6 +182,7 @@ Set-Format -WorkSheet $ws -Range $range -BackgroundColor $BackgroundColor } if ($TabColor) { + if ($TabColor -is [string]) {$TabColor = [System.Drawing.Color]::$TabColor } foreach ($tab in ($file.group._sheet | Select-Object -Unique)) { $xl.Workbook.Worksheets[$tab].TabColor = $TabColor }