如何在EPPlus中为字体分配颜色?

31

我可以像这样设置单元格或单元格区域的背景颜色:

rowRngprogramParamsRange.Style.Fill.PatternType = ExcelFillStyle.Solid;
rowRngprogramParamsRange.Style.Fill.BackgroundColor.SetColor(Color.DarkRed);

虽然我尝试过这个方法,但我仍然无法设置字体颜色:

rowRngprogramParamsRange.Style.Font.Color = Color.Red;

...编译失败,出现两个错误消息:第一个是无法将System.Drawing.Color分配给OfficeOpenXml.Style.ExcelColor,第二个是该属性是只读的。

仅为尝试,我尝试进行强制转换:

rowRngprogramParamsRange.Style.Font.Color = (OfficeOpenXml.Style.ExcelColor)Color.Red;

在EPPlus中,大部分事情都很简单,肯定比Excel Interop更容易,但其中一个问题让我感到困惑。在EPPlus中,如何为某个范围的字体指定颜色呢?我现在得到的错误信息是:无法将类型“System.Drawing.Color”转换为“OfficeOpenXml.Style.ExcelColor”

2个回答

59

可以安全地假设Style.Fill.BackgroundColorStyle.Font.Color都是ExcelColor类型,因此只需使用设置背景颜色时使用的相同的SetColor()方法。

rowRngprogramParamsRange.Style.Font.Color.SetColor(Color.Red);

1
此外,如果您想要确切的Excel颜色,我会建议您将所需颜色的Excel电子表格截图复制到MS Paint中,从中获取其十六进制代码。之后,您只需按照此方式添加所获取的RGB代码即可。
rowRngprogramParamsRange.Style.Font.Color.SetColor(0, 244, 176, 132)

第一个参数可以保持为0。 当前颜色为橙色强调2亮度减40。 浅鲑鱼色接近该颜色,但不完全相同。

你怎么从画图中获取RGB值? - B. Clay Shannon-B. Crow Raven
1
有一个工具看起来像滴管,可以让你复制一种颜色。你复制所需的颜色,然后右键点击颜色,会出现修改颜色的按钮。弹出窗口的右下角将显示 RGB 代码。 - Fjodr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接