Legen Sie mit epplus c # die benutzerdefinierte Hintergrundfarbe einer Excel-Blattzelle fest

78

Das Problem:

Ich benutze EEPlus.

Ich kann keinen Hex-Farbcode anwenden, z. B. #B7DEE8für eine Zelle in meiner Excel-Tabelle.

Ich habe den folgenden (Arbeits-) Code erhalten:

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

Aber ich brauche so etwas wie das Folgende:

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

Meine Frage ist also: Ist es möglich, Hex-Farbcodes mit EEPlus zu verwenden? Wenn ja, wie kann ich das machen?

Hakuna Matata
quelle

Antworten:

127

Versuche dies

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);
Yograj Gupta
quelle
Ich benutze Interop.Excel, also musste ich range.Interior.Color verwenden, aber die Farbe aus der HTML-Funktion war genau das, was ich brauchte.
StevenWhite
System.Drawing.ColorTranslator.FromHtmlist wirklich das, was jeder brauchen würde.
H Aßdøµ
26

Das funktioniert gut.

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))
Jhonny Nina
quelle
5

Sie sind nicht verpflichtet, eine hexadezimale CSS-Farbformel zu übersetzen: Sie können einfach "0X" als Überschrift dieser Zahl eingeben, wodurch es sich um einen ganzzahligen Ausdruck handelt:

    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);
BBBreiz
quelle
0

Das hat bei mir funktioniert.

// fülle Spalte A mit roter Farbe aus hex

Arbeitsblatt.Spalte (1) .Style.Fill.PatternType = ExcelFillStyle.Solid; Arbeitsblatt.Spalte (1) .Style.Fill.BackgroundColor.SetColor (ColorTranslator.FromHtml ("# FF0000")); `

// fülle Zeile 4 mit gestreiftem orangefarbenem Hintergrund

Arbeitsblatt.Row (4) .Style.Fill.PatternType = ExcelFillStyle.DarkHorizontal; Arbeitsblatt.Row (4) .Style.Fill.BackgroundColor.SetColor (Color.Orange);

Rene Riveron Bacallao
quelle