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

Hak*_*ata 69 c# openxml epplus

问题:

我正在使用EEPlus.

我坚持应用十六进制颜色代码,例如#B7DEE8,我的Excel工作表中的单元格.

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

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

但我需要以下内容:

ws.Cells["A1:B1"].Style.Fill.BackgroundColor.SetColor("#B7DEE8");
Run Code Online (Sandbox Code Playgroud)

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

Yog*_*pta 111

试试这个

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);
Run Code Online (Sandbox Code Playgroud)

  • 不要忘记先设置PatternType,否则它将无效 (21认同)

小智 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))
Run Code Online (Sandbox Code Playgroud)


小智 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);
Run Code Online (Sandbox Code Playgroud)