web-dev-qa-db-fra.com

Définir la couleur d'arrière-plan personnalisée d'une cellule de feuille Excel à l'aide de epplus c #

Le problème:

J'utilise EEPlus.

Je suis coincé à appliquer un code de couleur hexadécimal, par exemple. #B7DEE8, pour une cellule de ma feuille Excel.

J'ai le code (de travail) suivant:

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

Mais j'ai besoin de quelque chose comme ce qui suit:

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

Ma question est donc la suivante: est-il possible d’utiliser des codes de couleur hexagonaux avec EEPlus? Si oui, comment puis-je faire cela?

63
Hakuna Matata

Essaye ça

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);
104
Yograj Gupta

Cela fonctionne bien.

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))
25
Jhonny Nina

Vous n'êtes pas obligé de traduire une formule de couleur CSS hexadécimale: vous pouvez simplement mettre "0X" comme en-tête de ce nombre, ce qui en fait une expression entière:

    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);
3
BBBreiz