2016-07-04 1 views
2

PowerShell 3 및 ClosedXML을 사용하여 파일 정보를 Excel 워크 시트에 씁니다. 셀 중 하나에서 배경색을 밝은 파란색 (수레 국화 또는 219, 229, RGB 249)으로 설정해야합니다. 나는 다양한 방법을 시도해 왔지만, 지금까지 운이 없다. ClosedXML 사이트에 따르면 XLColor 객체를 참조 할 수 있어야합니다. 나는 또한 배경색을 설정하는 수많은 변형을 시도했다.PowerShell 스크립트에서 ClosedXML로 셀 배경색을 설정해야합니다.

$cell.Style.Fill.BackgroundColor.Color(219, 229, 249) 

또는 $ cell.Style.Fill.SetBackgroundColor (6) 또는 $ cell.Style.Fill.SetBackgroundColor (XLColor.Blue)

어떤 제안을 크게 감상 할 수있다. 대부분의 예제는 C#입니다.이 C#은 일반적으로 꽤 매끄럽게 변환되지만 이것은 내가 알아 낸 행운이 없다는 것입니다.

감사 릭 앤더슨

답변

2

업데이트 (7 월 오전 12:15 4 일) 또한 테두리 작업을 도왔다 및 기타 항목에 도움이 될 것입니다 확신 비밀을, 금.

색상을 다루는 트릭은 ClosedXML.Excel.XLColor 유형의 변수를 정의하고 원하는 값을 동시에 할당하는 것입니다. 당신은 색상을 지정하는 여러 옵션을 사용할 수 있습니다 : 당신이 테두리 작업을해야하지만, 당신이 직접 할 수 있다면이 또한 작동

#Define the color variables I need. In this case a color for the hash column and a 
#color for the Title/Header row. 
$HashColor = [ClosedXML.Excel.XLColor]::FromArgb(219, 229, 249) 
$TitleColor = [ClosedXML.Excel.XLColor]::FromArgb(221, 217, 195) 

. . . Do some stuff 

#Format the Header Row 
$headerRange = $worksheetObject.Range("a1","d1") 
$headerRange.Style.Font.Bold=$True 
$cell = $worksheetObject.Range($headerRange) 
$cell.Style.Fill.BackgroundColor =$TitleColor 

. . . Do some stuff 

#Write file information row 
$row++ 
$worksheetObject.Cell($row,1).Value=$File.Name 
$worksheetObject.Cell($row,2).Value=$FileType 
$worksheetObject.Cell($row,3).Value=$strFileLen 
$stringRow = $row.ToString() 
$FirstCell = "A" + $stringRow 
$LastCell = "D" + $stringRow 
$Range  = $FirstCell + ":" + $LastCell 
$cell = $worksheetObject.Range($Range) 
$cell.Style.Fill.BackgroundColor =$HashColor 

:

$SomeColor = [ClosedXML.Excel.XLColor]::AirForceBlue #Pick a color from the list 
$SomeColor = [ClosedXML.Excel.XLColor]::FromArgb() #RGB 
$SomeColor = [ClosedXML.Excel.XLColor]::FromColor() #System.Drawing.Color 
$SomeColor = [ClosedXML.Excel.XLColor]::FromHtml() #HTML Color 
$SomeColor = [ClosedXML.Excel.XLColor]::FromIndex() #numeric index of the colors 
$SomeColor = [ClosedXML.Excel.XLColor]::FromKnownColor() #System.Drawing.Color 
$SomeColor = [ClosedXML.Excel.XLColor]::FromName() #String name of color 
$SomeColor = [ClosedXML.Excel.XLColor]::FromTheme() #XLThemeColor 

다음은 FromArgb 옵션을 사용하여 예입니다.

$cell.Style.Border.OutsideBorder = [ClosedXML.Excel.XLBorderStyleValues]::Thin 
$cell.Style.Border.InsideBorder = [ClosedXML.Excel.XLBorderStyleValues]::Thin 

는 또한 테두리 색상

$cell.Style.Border.BottomBorderColor = [ClosedXML.Excel.XLColor]::CornflowerBlue 

이것은 분명한 해결책이 아니었다 그러나이 방법을 알아내는 것은 PowerShell의 미래 ClosedXML 작업에 많은 도움이 될 것입니다을 변경 같은 일을 할 수 있습니다. 바라기를 이것은 누군가를 도울 수 있기를 바랍니다.

관련 문제