使用epplus C#设置Excel工作表单元格的自定义BackgroundColor


78

问题:

我正在使用EEPlus。

我一直坚持#B7DEE8在我的Excel工作表中为单元格应用十六进制颜色代码。

我得到以下(工作)代码:

ws.Cells["A1:B1"].Style.Fill.PatternType = ExcelFillStyle.Solid;
ws.Cells["A1:B1"].Style.Fill.BackgroundColor.SetColor(Color.Gray);

但我需要以下内容:

ws.Cells["A1:B1"].Style.Fill.BackgroundColor.SetColor("#B7DEE8");

所以我的问题是:EEPlus是否可以使用十六进制颜色代码?如果是这样,我该怎么做?

Answers:


127

试试这个

Color colFromHex = System.Drawing.ColorTranslator.FromHtml("#B7DEE8");
ws.Cells["A1:B1"].Style.Fill.PatternType = ExcelFillStyle.Solid;
ws.Cells["A1:B1"].Style.Fill.BackgroundColor.SetColor(colFromHex);

我正在使用Interop.Excel,所以我不得不使用range.Interior.Color,但是我需要HTML函数的颜色。
StevenWhite

System.Drawing.ColorTranslator.FromHtml确实是任何人所需要的。
H Aßdøµ

26

这运作良好。

Dim objExcel As New ExcelPackage
Dim Sheet As ExcelWorksheet = objExcel.Workbook.Worksheets.Add("SheetName")
Sheet.Cells["A1"].Style.Fill.PatternType = Style.ExcelFillStyle.Solid
Sheet.Cells["A1"].Style.Fill.BackgroundColor.SetColor(Color.FromArgb(170, 170, 170))

5

您无须转换十六进制CSS颜色公式:您只需将“ 0X”作为该数字的标题即可,使其成为整数表达式:

    var couleur = System.Drawing.Color.FromArgb(OXB7DEF8);
    Sheet.Cells["A1"].Style.Fill.PatternType = OfficeOpenXml.Style.ExcelFillStyle.Solid;
    Sheet.Cells["A1"].Style.Fill.BackgroundColor.SetColor(couleur);

0

这对我有用。

//用十六进制的红色填充A列

worksheet.Column(1).Style.Fill.PatternType = ExcelFillStyle.Solid; worksheet.Column(1).Style.Fill.BackgroundColor.SetColor(ColorTranslator.FromHtml(“#FF0000”));`

//在第4行中填充橙色条纹背景

worksheet.Row(4).Style.Fill.PatternType = ExcelFillStyle.DarkHorizo​​ntal; worksheet.Row(4).Style.Fill.BackgroundColor.SetColor(Color.Orange);

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.