Working with Excel Slicer
24 Nov 202517 minutes to read
Slicers are UI filters that help to display only specific data based on the selection criteria. They provide easy and simple UI options to enable or disable the filters in a table.
Syncfusion® XlsIO supports below features.
- Create slicers and filter table data.
- Format slicers with built-in styles.
Create Slicer
The following code snippet explains how to create a table slicer.
using (ExcelEngine excelEngine = new ExcelEngine())
{
IApplication application = excelEngine.Excel;
application.DefaultVersion = ExcelVersion.Xlsx;
IWorkbook workbook = application.Workbooks.Open("Sample.xlsx", ExcelOpenType.Automatic);
IWorksheet sheet = workbook.Worksheets[0];
//Access the table.
IListObject table = sheet.ListObjects[0];
//Add slicer for the table.
sheet.Slicers.Add(table, 3, 11, 2);
workbook.SaveAs("Output.xlsx");
}using (ExcelEngine excelEngine = new ExcelEngine())
{
IApplication application = excelEngine.Excel;
application.DefaultVersion = ExcelVersion.Xlsx;
IWorkbook workbook = application.Workbooks.Open("Sample.xlsx", ExcelOpenType.Automatic);
IWorksheet sheet = workbook.Worksheets[0];
//Access the table.
IListObject table = sheet.ListObjects[0];
//Add slicer for the table.
sheet.Slicers.Add(table, 3, 11, 2);
workbook.SaveAs("Output.xlsx");
}Using excelEngine As ExcelEngine = New ExcelEngine
Dim application As IApplication = excelEngine.Excel
application.DefaultVersion = ExcelVersion.Xlsx
Dim workbook As IWorkbook = application.Workbooks.Open("Sample.xlsx", ExcelOpenType.Automatic)
Dim sheet As IWorksheet = workbook.Worksheets(0)
'Access the first table.
Dim table As IListObject = sheet.ListObjects(0)
'Add slicer for the table.
sheet.Slicers.Add(table, 3, 11, 2)
workbook.SaveAs("Output.xlsx")
End Using
Slicer Properties
Slicer name
The existing name of a slicer can be obtained or changed through Name property.
ISlicer slicer = sheet.Slicers[0];
slicer.Name = "Slicer1";ISlicer slicer = sheet.Slicers[0];
slicer.Name = "Slicer1";ISlicer slicer = sheet.Slicers(0)
slicer.Name = "Slicer1"Slicer caption
Slicer caption can be modified through Caption property.
ISlicer slicer = sheet.Slicers[0];
slicer.Caption = "Select any value";ISlicer slicer = sheet.Slicers[0];
slicer.Caption = "Select any value";ISlicer slicer = sheet.Slicers(0)
slicer.Caption = "Select any value"Positioning a Slicer
Slicer can be positioned in the worksheet as required, as below.
ISlicer slicer = sheet.Slicers[0];
slicer.Top = 100;
slicer.Left = 300;ISlicer slicer = sheet.Slicers[0];
slicer.Top = 100;
slicer.Left = 300;ISlicer slicer = sheet.Slicers(0)
slicer.Top = 100
slicer.Left = 300Resize a Slicer
A slicer can be resized as shown below.
ISlicer slicer = sheet.Slicers[0];
slicer.Height = 200;
slicer.Width = 150;ISlicer slicer = sheet.Slicers[0];
slicer.Height = 200;
slicer.Width = 150;ISlicer slicer = sheet.Slicers(0)
slicer.Height = 200
slicer.Width = 150Resize Slicer item
Slicer item can also the resized, as shown below.
ISlicer slicer = sheet.Slicers[0];
slicer.SlicerItemHeight = 0.4;
slicer.SlicerItemWidth = 80;ISlicer slicer = sheet.Slicers[0];
slicer.SlicerItemHeight = 0.4;
slicer.SlicerItemWidth = 80;ISlicer slicer = sheet.Slicers(0)
slicer.SlicerItemHeight = 0.4
slicer.SlicerItemWidth = 80Slicer columns
Select the number of columns inside a slicer as below.
ISlicer slicer = sheet.Slicers[0];
slicer.NumberOfColumns = 2;ISlicer slicer = sheet.Slicers[0];
slicer.NumberOfColumns = 2;ISlicer slicer = sheet.Slicers(0)
slicer.NumberOfColumns = 2Slicer header
A slicer header can be shown or hidden through DisplayHeader property.
ISlicer slicer = sheet.Slicers[0];
slicer.DisplayHeader = true;ISlicer slicer = sheet.Slicers[0];
slicer.DisplayHeader = true;ISlicer slicer = sheet.Slicers(0)
slicer.DisplayHeader = TrueSlicer style
Slicer style can be selected as shown below.
ISlicer slicer = sheet.Slicers[0];
slicer.SlicerStyle = ExcelSlicerStyle.SlicerStyleDark2;ISlicer slicer = sheet.Slicers[0];
slicer.SlicerStyle = ExcelSlicerStyle.SlicerStyleDark2;ISlicer slicer = sheet.Slicers(0)
slicer.SlicerStyle = ExcelSlicerStyle.SlicerStyleDark2Select a Slicer Item
The following example shows how to select items in a slicer.
ISlicer slicer = sheet.Slicers[0];
ISlicerCache cache = slicer.SlicerCache;
cache.SlicerCacheItems[0].IsSelected = true;ISlicer slicer = sheet.Slicers[0];
ISlicerCache cache = slicer.SlicerCache;
cache.SlicerCacheItems[0].IsSelected = true;Dim slicer As ISlicer = sheet.Slicers(0)
Dim cache As ISlicerCache = slicer.SlicerCache
cache.SlicerCacheItems(0).IsSelected = TrueSelect slicer filter type
The following example shows how to select the slicer filter type.
ISlicer slicer = sheet.Slicers[0];
ISlicerCache cache = slicer.SlicerCache;
cache.CrossFilterType = SlicerCrossFilterType.ShowItemsWithDataAtTop;ISlicer slicer = sheet.Slicers[0];
ISlicerCache cache = slicer.SlicerCache;
cache.CrossFilterType = SlicerCrossFilterType.ShowItemsWithDataAtTop;Dim slicer As ISlicer = sheet.Slicers(0)
Dim cache As ISlicerCache = slicer.SlicerCache
cache.CrossFilterType = SlicerCrossFilterType.ShowItemsWithDataAtTopSort the slicer items
The following example shows how to sort the slicer items.
ISlicer slicer = sheet.Slicers[0];
ISlicerCache cache = slicer.SlicerCache;
cache.IsAscending = true;ISlicer slicer = sheet.Slicers[0];
ISlicerCache cache = slicer.SlicerCache;
cache.IsAscending = true;Dim slicer As ISlicer = sheet.Slicers(0)
Dim cache As ISlicerCache = slicer.SlicerCache
cache.IsAscending = TrueSort the slicer items using Custom list sorting option
The following example shows how to sort the slicer items using Custom list sorting option
ISlicer slicer = sheet.Slicers[0];
ISlicerCache cache = slicer.SlicerCache;
cache.UseCustomListSorting = true;ISlicer slicer = sheet.Slicers[0];
ISlicerCache cache = slicer.SlicerCache;
cache.UseCustomListSorting = true;Dim slicer As ISlicer = sheet.Slicers(0)
Dim cache As ISlicerCache = slicer.SlicerCache
cache.UseCustomListSorting = TrueThe following code snippet illustrates how to format an existing slicer with all the above discussed properties.
using (ExcelEngine excelEngine = new ExcelEngine())
{
IApplication application = excelEngine.Excel;
application.DefaultVersion = ExcelVersion.Xlsx;
IWorkbook workbook = application.Workbooks.Open("Sample.xlsx", ExcelOpenType.Automatic);
IWorksheet sheet = workbook.Worksheets[0];
//Access the table
IListObject table = sheet.ListObjects[0];
//Add slicer for the table
sheet.Slicers.Add(table, 3, 11, 2);
//Access the slicer
ISlicer slicer = sheet.Slicers[0];
//Slicer name
slicer.Name = "Slicer1";
//Slicer caption
slicer.Caption = "Select any value";
//Positioning a Slicer
slicer.Top = 100;
slicer.Left = 300;
//Resize a Slicer
slicer.Height = 200;
slicer.Width = 150;
//Resize Slicer item
slicer.SlicerItemHeight = 0.4;
slicer.SlicerItemWidth = 80;
//Slicer columns
slicer.NumberOfColumns = 2;
//Slicer header
slicer.DisplayHeader = true;
//Slicer style
slicer.SlicerStyle = ExcelSlicerStyle.SlicerStyleDark2;
//Select the slicer item
ISlicerCache cache = slicer.SlicerCache;
cache.SlicerCacheItems[0].IsSelected = true;
//Set the slicer filter type
cache.CrossFilterType = SlicerCrossFilterType.ShowItemsWithDataAtTop;
//Sort the slicer items in ascending order
cache.IsAscending = true;
//Custom list sorting
cache.UseCustomListSorting = true;
workbook.SaveAs("Output.xlsx");
}using (ExcelEngine excelEngine = new ExcelEngine())
{
IApplication application = excelEngine.Excel;
application.DefaultVersion = ExcelVersion.Xlsx;
IWorkbook workbook = application.Workbooks.Open("Sample.xlsx", ExcelOpenType.Automatic);
IWorksheet sheet = workbook.Worksheets[0];
//Access the table
IListObject table = sheet.ListObjects[0];
//Add slicer for the table
sheet.Slicers.Add(table, 3, 11, 2);
//Access the slicer
ISlicer slicer = sheet.Slicers[0];
//Slicer name
slicer.Name = "Slicer1";
//Slicer caption
slicer.Caption = "Select any value";
//Positioning a Slicer
slicer.Top = 100;
slicer.Left = 300;
//Resize a Slicer
slicer.Height = 200;
slicer.Width = 150;
//Resize Slicer item
slicer.SlicerItemHeight = 0.4;
slicer.SlicerItemWidth = 80;
//Slicer columns
slicer.NumberOfColumns = 2;
//Slicer header
slicer.DisplayHeader = true;
//Slicer style
slicer.SlicerStyle = ExcelSlicerStyle.SlicerStyleDark2;
//Select the slicer item
ISlicerCache cache = slicer.SlicerCache;
cache.SlicerCacheItems[0].IsSelected = true;
//Set the slicer filter type
cache.CrossFilterType = SlicerCrossFilterType.ShowItemsWithDataAtTop;
//Sort the slicer items in ascending order
cache.IsAscending = true;
//Custom list sorting
cache.UseCustomListSorting = true;
workbook.SaveAs("Output.xlsx");
}Using excelEngine As ExcelEngine = New ExcelEngine
Dim application As IApplication = excelEngine.Excel
application.DefaultVersion = ExcelVersion.Xlsx
Dim workbook As IWorkbook = application.Workbooks.Open("Sample.xlsx", ExcelOpenType.Automatic)
Dim sheet As IWorksheet = workbook.Worksheets(0)
'Access the first table.
Dim table As IListObject = sheet.ListObjects(0)
'Add slicer for the table
sheet.Slicers.Add(table, 3, 11, 2)
'Access the slicer
Dim slicer As ISlicer = sheet.Slicers(0)
'Slicer name
slicer.Name = "Slicer1"
'Slicer caption
slicer.Caption = "Select any value"
'Positioning a Slicer
slicer.Top = 100
slicer.Left = 300
'Resize a Slicer
slicer.Height = 200
slicer.Width = 150
'Resize Slicer item
slicer.SlicerItemHeight = 0.4
slicer.SlicerItemWidth = 80
'Slicer columns
slicer.NumberOfColumns = 2
'Slicer header
slicer.DisplayHeader = True
'Slicer style
slicer.SlicerStyle = ExcelSlicerStyle.SlicerStyleDark2
'Select the slicer item
Dim cache As ISlicerCache = slicer.SlicerCache
cache.SlicerCacheItems(0).IsSelected = True
'Set the slicer filter type
cache.CrossFilterType = SlicerCrossFilterType.ShowItemsWithDataAtTop
'Sort the slicer items in ascending order
cache.IsAscending = True
'Custom list sorting
cache.UseCustomListSorting = True
workbook.SaveAs("Output.xlsx")
End Using