Skip to main content

DatasetStyle

Definition

Namespace: Surya.Ab.Export.Client.Models Assembly: Surya.Ab.Export.dll

It holds all style related properties for a Dataset.

public class DatasetStyle : ItemStyle

Inheritance ItemStyle -> DatasetStyle

Properties

NameDefinition
RowStylesRepresents style properties for rows of the table
ColumnStylesRepresents style properties for columns of the table
CellStylesRepresents style properties for cells of the table
note

Row index of a Dataset always starts from 0 where 0th row represents Header of the table. For column, index starts from 1.

Structure

public class DatasetStyle : ItemStyle
{
public Dictionary<int, AbStyle>? RowStyles { get; set; } = default;
public Dictionary<int, AbStyle>? ColumnStyles { get; set; } = default;
public Dictionary<(int, int), AbStyle>? CellStyles { get; set; } = default;
}

Example

// Get instance of DatasetStyleBuilder
var datasetStyleBuilder = serviceProvider.GetRequiredService<IDatasetStyleBuilder>();

// Build Dataset style
var datasetStyle = datasetStyleBuilder
.HeaderStyle(new AbStyle()
{
FontSize = 20,
BackgroundColor = Color.LemonChiffon,
Color = Color.Purple,
TextAlign = new AbAlignment()
{
HorizontalAlignment = AbHorizontalAlignment.Center
}
})
.TableHeaderStyle(new AbStyle()
{
FontSize = 12,
BackgroundColor = Color.BlanchedAlmond,
Color = Color.Red,
TextAlign = new AbAlignment()
{
HorizontalAlignment = AbHorizontalAlignment.Left
},
CellBorder = new AbCellBorder()
{
TopBorder = new AbBorder(AbBorderStyleValues.Thick, Color.LightGray)
}
})
.BodyStyle(new AbStyle()
{
FontSize = 10,
Color = Color.DarkGoldenrod,
TextAlign = new AbAlignment()
{
HorizontalAlignment = AbHorizontalAlignment.Left
},
CellBorder = new AbCellBorder()
{
TopBorder = new AbBorder(AbBorderStyleValues.Thick, Color.LightGray),
BottomBorder = new AbBorder(AbBorderStyleValues.Thick, Color.LightGray),
LeftBorder = new AbBorder(AbBorderStyleValues.Thick, Color.Purple),
RightBorder = new AbBorder(AbBorderStyleValues.Thick, Color.Purple),
}
})
.FooterStyle(new AbStyle()
{
FontSize = 10,
BackgroundColor = Color.LemonChiffon,
Color = Color.Purple,
TextAlign = new AbAlignment()
{
HorizontalAlignment = AbHorizontalAlignment.Left
}
})
.RowStyles(row => row
.RowStyle(1, new AbStyle() { Color = Color.OrangeRed })
.RowStyle(3, new AbStyle() { FontWeight = FontWeight.Bold, TextDecorationLine = TextDecorationLine.UnderLine }))
.ColumnStyles(col => col
.ColumnStyle(1, new AbStyle() { Color = Color.Purple })
.ColumnStyle(3, new AbStyle() { FontWeight = FontWeight.Regular, TextDecorationLine = TextDecorationLine.LineThrough }))
.CellStyles(col => col
.CellStyle(0, 1, new AbStyle() { Width = 100, BackgroundColor = Color.OrangeRed }) //TableHeader 1st cell/col
.CellStyle(1, 2, new AbStyle() { Color = Color.PapayaWhip })
.CellStyle(3, 3, new AbStyle() { FontWeight = FontWeight.Bold, TextDecorationLine = TextDecorationLine.UnderLine, BackgroundColor = Color.LemonChiffon }))
.Build();

Edit on GitHub