2016-07-04 76 views
2

PowerShell 3とClosedXMLを使用して、Excelのワークシートにファイル情報を書き出しています。 1つのセルでは、背景色を明るい青色に設定する必要があります(コーンフラワーブルーまたはRGBの219,229,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#で、通常はシームレスに翻訳されていますが、これは私が不運に思っていたものです。

おかげ リック・アンダーソン

答えて

2

更新(7月の12:15 AM 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 

また、これは明確な解決策ではありませんでしたが、この方法を考え出すことはPowerShellの将来ClosedXMLの仕事で多くのことを助ける

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

境界線の色を変更するために同じものを使用することができます。うまくいけば、これは誰かを助けてくれるでしょう。

関連する問題