gpt4 book ai didi

powershell - 需要在 PowerShell 脚本中使用 ClosedXML 设置单元格背景颜色

转载 作者:行者123 更新时间:2023-12-02 22:40:15 44 4
gpt4 key购买 nike

我正在使用 PowerShell 3 和 ClosedXML 将文件信息写入 Excel 工作表。在其中一个单元格中,我需要将背景颜色设置为浅蓝色(矢车菊蓝色或 RGB 中的 219、229、249)。我已经尝试了多种方法,但到目前为止都没有成功。根据 ClosedXML 站点,我应该能够引用 XLColor 对象。我还尝试了多种设置背景颜色的方法。

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

或者
$cell.Style.Fill.SetBackgroundColor(6)
或者
$cell.Style.Fill.SetBackgroundColor(XLColor.Blue)

任何建议将不胜感激。大多数示例是 C#,它们通常可以无缝转换,但这是我没有运气弄清楚的示例。

谢谢
里克·安德森

最佳答案

更新(7 月 4 日上午 12:15)
我破解了这个 secret ,这也有助于 Borders 的工作,而且我肯定会对其他项目有所帮助。

处理颜色的技巧是定义一个 ClosedXML.Excel.XLColor 类型的变量并同时分配您想要的值。您可以在指定颜色时使用多个选项:

$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 选项的示例:
#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

如果您需要使用边框,这也适用,但您可以直接使用。
$cell.Style.Border.OutsideBorder = [ClosedXML.Excel.XLBorderStyleValues]::Thin
$cell.Style.Border.InsideBorder = [ClosedXML.Excel.XLBorderStyleValues]::Thin

你也可以用同样的东西来改变边框颜色
$cell.Style.Border.BottomBorderColor = [ClosedXML.Excel.XLColor]::CornflowerBlue

这不是最清晰的解决方案,但找出此方法将对 future 在 PowerShell 中的 ClosedXML 工作有很大帮助。希望这可以帮助那里的人。

关于powershell - 需要在 PowerShell 脚本中使用 ClosedXML 设置单元格背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38175943/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com