web-dev-qa-db-ja.com

epplus C#を使用してExcelシートセルのカスタム背景色を設定する

問題:

EEPlusを使用しています。

16進カラーコードの適用にこだわっています。 #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で16進カラーコードを使用することは可能ですか?もしそうなら、どうすればそれができますか?

63
Hakuna Matata

これを試して

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

これはうまく機能しています。

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

16進数の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);
3
BBBreiz