Create and use WorksheetRangeStyle
object to pass style items into cells or ranges, call SetRangeStyles
method of worksheet to set style object; ReoGrid always use an enumeration called PlainStyleFlag
to determine what styles should be handled.
Set Styles
There are several ways to set cell or range styles.
- Call worksheet methods
- Use Cell or Range instance
- Use Actions
Call Worksheet Methods
Use method SetRangeStyles
from worksheet to set styles for cell or range:
sheet.SetRangeStyles("B1:E5", new WorksheetRangeStyle
{
// style item flag
Flag = PlainStyleFlag.FillColor,
// style item
BackColor = Color.SkyBlue,
});
Use Cell or Range instance
Get cell or range instance, then set theirs Style
property to change styles.
// for cell
var cell = sheet.Cells["B3"];
cell.Style.BackColor = Color.SkyBlue;
// for range
var range = sheet.Ranges["B1:C3"];
range.Style.BackColor = Color.LightYellow;
Use Actions
Set styles by using action for the ability to undo, redo and repeat operations.
sheet.DoAction(new SetRangeStyleAction(RangePosition range, WorksheetRangeStyle styleSet));
Get Styles
There are following ways to get styles from cell or range:
- Call worksheet methods
- Use cell or range instance
- Use executable script
Call worksheet methods
Getting styles from cell or range by using worksheet methods:
sheet.GetRangeStyle(RangePosition range);
sheet.GetCellStyle(CellPosition pos);
Use cell or range instance
// for cell
var cell = sheet.Cells["B3"];
var backColor = cell.Style.BackColor;
// for range
var range = sheet.Ranges["B1:C3"];
var backColor = range.Style.BackColor;
Style Items
When call SetRangeStyles
method to set styles, the following style items are available for WorksheetRangeStyle
object:
Item | Value of PlainStyleFlag | Property Name | Type of property |
---|---|---|---|
Background Color | BackColor | BackColor | Color or SolidColor |
Background Pattern Style | FillPatternStyle | FillPatternStyle | HatchStyles |
Background Pattern Color | FillPatternColor | FillPatternColor | Color or SolidColor |
Text Color | TextColor | TextColor | Color or SolidColor |
Font Name | FontName | FontName | string |
Font Size | FontSize | FontSize | float for Windows Form; double for WPF |
Font Style: Bold | FontStyleBold | Bold | bool |
Font Style: Italic | FontStyleItalic | Italic | bool |
Font Style: Underline | FontStyleUnderline | Underline | bool |
Font Style: Strikethrough | FontStyleStrikethrough | Strikethrough | bool |
Horizontal Alignment | HorizontalAlign | HAlign | ReoGridHorAlign |
Vertical Alignment | VerticalAlign | VAlign | ReoGridVerAlign |
Text Indent | Indent | Indent | ushort |
Wrap Mode | TextWrap | TextWrapMode | TextWrapMode |
Rotate Angle | RotateAngle | RotateAngle | int (-90° ~ 90°) |
Padding of Cell Body | Padding | Padding | PaddingValue |
Background Color
Set background color to range B1:E5:
sheet.SetRangeStyles("B1:E5", new WorksheetRangeStyle
{
Flag = PlainStyleFlag.FillColor,
BackColor = Color.SkyBlue,
});
Don't forget to set Flag
property, it determines which style item has the value to be applied.
Background Pattern Color
Set background pattern color to entire grid:
sheet.SetRangeStyles(RangePosition.EntireRange,
new unvell.ReoGrid.RangePositionStyle {
Flag = PlainStyleFlag.FillPattern | PlainStyleFlag.FillColor,
BackColor = Color.LightYellow,
FillPatternColor = Color.SkyBlue,
FillPatternStyle = System.Drawing.Drawing2D.HatchStyle.DiagonalBrick
});
Text color
Set text color to red:
sheet.SetRangeStyles("B2:B2", new WorksheetRangeStyle()
{
Flag = PlainStyleFlag.TextColor,
TextColor = Color.Red,
});
Text alignments
Text alignment can be specified on horizontal and vertical directions.
Set cell's text horizontal alignment to Center
:
sheet.SetRangeStyles("A1:C3", new WorksheetRangeStyle
{
Flag = PlainStyleFlag.HorizontalAlign,
HAlign = ReoGridHorAlign.Center,
});
Text wrap
Set text wrap mode to WordWrap
: (default is no-wrap
)
sheet[1, 1] = "How many beers can you drink?";
sheet.SetRangeStyles("B2:B2", new WorksheetRangeStyle()
{
Flag = PlainStyleFlag.TextWrap,
TextWrapMode = TextWrapMode.WordBreak,
});
Text Rotation
Set RotateAngle property of style object to rotate text inside cell:
var cell = sheet.Cells["A1"];
cell.Data = "Hello World";
cell.Style.RotateAngle = 90; // rotate 90°
Result:
Font
Change font name and size:
sheet.SetRangeStyles("B2:B2", new WorksheetRangeStyle()
{
Flag = PlainStyleFlag.FontSize | PlainStyleFlag.FontName,
FontName = "Arial",
FontSize = 20,
});
Change font styles:
// use method
sheet.SetRangeStyles("B2", new unvell.ReoGrid.WorksheetRangeStyle
{
Flag = unvell.ReoGrid.PlainStyleFlag.FontStyleBold,
Bold = true,
});
// use method
sheet.SetRangeStyles("C2", new unvell.ReoGrid.WorksheetRangeStyle
{
Flag = unvell.ReoGrid.PlainStyleFlag.FontStyleItalic,
Italic = true,
});
// use cell instances
sheet.Cells["B3"].Style.Underline = true;
sheet.Cells["C3"].Style.Strikethrough = true;
// set data
sheet["B2:C3"] =new object[] { "Bold", "Italic", "Underline", "Strikethrough" };
Remove Style
Always remove style from range even for single cell.
Use worksheet method
By specifying PlainStyleFlag
to decide what styles should be removed. For example to remove all background styles from specified range:
sheet.RemoveRangeStyle(new RangePosition(2, 2, 3, 3), PlainStyleFlag.FillAll);
Use Actions
Remove all background styles from specified range:
sheet.DoAction(new RemoveRangeStyleAction(new RangePosition(2, 2, 3, 3), PlainStyleFlag.FillAll));