2013-06-08 13 views
49

Il problema:Set personalizzato BackgroundColor di una cella di foglio di Excel utilizzando epplus C#

Sto usando EEPlus.

Sono bloccato ad applicare un codice di colore esadecimale, ad es. #B7DEE8, per una cella nel mio foglio Excel.

ho ottenuto il seguente codice (di lavoro):

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

Ma ho bisogno di qualcosa di simile al seguente:

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

Quindi la mia domanda è: è possibile utilizzare i codici colore esadecimale con EEPlus ? Se è così, come posso farlo?

risposta

67

Prova questa

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); 
+13

Non dimenticare di impostare prima il PatternType, altrimenti non funzionerà – JumpingJezza

+0

sto usando Interop.Excel così ho dovuto usare range.Interior.Color ma il colore dalla funzione di HTML è stato quello che mi serviva . – StevenWhite

24

Questo sta funzionando bene.

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)) 
Problemi correlati