2016-09-13 32 views
8

Próbuję zmienić kolor obramowania komórki na wybranym zakresie. Nie można znaleźć żadnych inne style obramowania komórek innych niż dla mas granicach następująco:EPPlus Zmiana koloru obramowania komórek

range.Style.Border.Top.Style = ExcelBorderStyle.Thin; 
range.Style.Border.Left.Style = ExcelBorderStyle.Thin; 
range.Style.Border.Right.Style = ExcelBorderStyle.Thin; 
range.Style.Border.Bottom.Style = ExcelBorderStyle.Thin; 

Odpowiedz

6

Jeśli chcesz wysłane kolory graniczne w różnych częściach komórki można zrobić to tak:

range.Style.Border.Top.Color.SetColor(Color.Red); 
range.Style.Border.Bottom.Color.SetColor(Color.Green); 
range.Style.Border.Left.Color.SetColor(Color.Blue); 
range.Style.Border.Right.Color.SetColor(Color.Yellow); 

SetColor może wziąć każdy rodzaj System.Drawing.Color.

+0

Wielkie dzięki, działa już teraz, wyraźnie nie zwracałem uwagi, że po trzeciej nieruchomości istniała własność .color. – Matteo

4

można zmienić styl i kolor obramowania przy użyciu tego kodu

range.Style.Border.BorderAround(ExcelBorderStyle.Medium, System.Drawing.Color.Blue); 
+1

Działa to też, ale potrzebne rozwiązanie, które dodaje granicę do wszystkich stron na komórki jako rozwiązanie Ernie co dyktuje. Dzięki i tak. – Matteo

1
  using (ExcelRange range = worksheet.Cells["A1:H1"]) 
      { 
       range.Style.Font.Bold = true; 
       range.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; 
       range.Style.VerticalAlignment = ExcelVerticalAlignment.Center; 
       range.Style.Fill.PatternType = ExcelFillStyle.Solid; 
       range.Style.Fill.BackgroundColor.SetColor(Color.White); 

       range.Style.Border.Top.Style = ExcelBorderStyle.Thin; 
       range.Style.Border.Top.Color.SetColor(Color.Red); 
       range.Style.Border.Left.Style = ExcelBorderStyle.Thin; 
       range.Style.Border.Left.Color.SetColor(Color.Green); 
       range.Style.Border.Right.Style = ExcelBorderStyle.Thin; 
       range.Style.Border.Right.Color.SetColor(Color.Green); 
       range.Style.Border.Bottom.Style = ExcelBorderStyle.Thin; 
       range.Style.Border.Bottom.Color.SetColor(Color.Green); 
      } 

The final output will come as shown here