# Add Slicer in Pivot Table

DsExcel allows you to add slicer to organize the data in pivot table and multi pivot table.

## Content





DsExcel enables users to efficiently organize data in pivot tables and multi pivot tables via slicers.

The methods of the [ISlicerCaches](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/ISlicerCaches.html) interface, the [ISlicerCache](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/ISlicerCache.html) interface, the [IPivotCache](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/IPivotCache.html) interface, [IPivotCaches](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/IPivotCaches.html) interface, [IPivotField](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/IPivotField.html) interface, [IPivotFields](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/IPivotFields.html) interface, [IPivotTable](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/IPivotTable.html) interface, [IPivotTables](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/IPivotTables.html) interface and the [IPivotItem](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/IPivotItem.html) interface can be used to insert slicers in pivot tables.

In order to insert slicer in a pivot table, you can use the [add](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/ISlicerCaches.html#add) method of the ISlicerCaches interface to create a new slicer cache for a pivot table, as shown in the example code shared below.

```Java
// Defining source data
Object sourceData = new Object[][] 
{ 
  { "Order ID", "Product", "Category", "Amount", "Date", "Country" },
  { 1, "Carrots", "Vegetables", 4270, new GregorianCalendar(2018, 0, 6), "United States" },
  { 2, "Broccoli", "Vegetables", 8239, new GregorianCalendar(2018, 0, 7), "United Kingdom" },
  { 3, "Banana", "Fruit", 617, new GregorianCalendar(2018, 0, 8), "United States" },
  { 4, "Banana", "Fruit", 8384, new GregorianCalendar(2018, 0, 10), "Canada" },
  { 5, "Beans", "Vegetables", 2626, new GregorianCalendar(2018, 0, 10), "Germany" },
  { 6, "Orange", "Fruit", 3610, new GregorianCalendar(2018, 0, 11), "United States" },
  { 7, "Broccoli", "Vegetables", 9062, new GregorianCalendar(2018, 0, 11), "Australia" },
  { 8, "Banana", "Fruit", 6906, new GregorianCalendar(2018, 0, 16), "New Zealand" },
  { 9, "Apple", "Fruit", 2417, new GregorianCalendar(2018, 0, 16), "France" },
  { 10, "Apple", "Fruit", 7431, new GregorianCalendar(2018, 0, 16), "Canada" },
  { 11, "Banana", "Fruit", 8250, new GregorianCalendar(2018, 0, 16), "Germany" },
  { 12, "Broccoli", "Vegetables", 7012, new GregorianCalendar(2018, 0, 18), "United States" },
  { 13, "Carrots", "Vegetables", 1903, new GregorianCalendar(2018, 0, 20), "Germany" },
  { 14, "Broccoli", "Vegetables", 2824, new GregorianCalendar(2018, 0, 22), "Canada" },
  { 15, "Apple", "Fruit", 6946, new GregorianCalendar(2018, 0, 24), "France" }, 
};
        
// Initialize the workbook and fetch the default worksheet
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.getWorksheets().get(0);
        
// Adding data to the pivot table
worksheet.getRange("A1:F16").setValue(sourceData);
worksheet.getRange("A:F").setColumnWidth(15);

// Create pivot cache.
IPivotCache pivotcache = workbook.getPivotCaches().create(worksheet.getRange("A1:F16"));
        
// Create pivot tables.
IPivotTable pivottable1 = worksheet.getPivotTables().add(pivotcache, 
worksheet.getRange("K5"), "pivottable1");
IPivotTable pivottable2 = worksheet.getPivotTables().add(pivotcache, 
worksheet.getRange("N3"), "pivottable2");
worksheet.getRange("D2:D16").setNumberFormat("$#,##0.00");

// Configure pivot fields
IPivotField field_product1 = pivottable1.getPivotFields().get(1);
field_product1.setOrientation(PivotFieldOrientation.RowField);

IPivotField field_Amount1 = pivottable1.getPivotFields().get(3);
field_Amount1.setOrientation(PivotFieldOrientation.DataField);

IPivotField field_product2 = pivottable2.getPivotFields().get(5);
field_product2.setOrientation(PivotFieldOrientation.RowField);

IPivotField field_Amount2 = pivottable2.getPivotFields().get(2);
field_Amount2.setOrientation(PivotFieldOrientation.DataField);
field_Amount2.setFunction(ConsolidationFunction.Count);

// Create slicer cache and the slicers base. The slicer cache controls pivot table1
ISlicerCache cache = workbook.getSlicerCaches().add(pivottable1, "Product");
ISlicer slicer1 = cache.getSlicers().add(workbook.getWorksheets().get("Sheet1"), 
"p1", "Product", 30, 550, 100, 200);

// Add pivot table2 for slicer cache. Slicer cache will control pivot table1 and pivot table2
cache.getPivotTables().addPivotTable(pivottable2);
```

In order to add slicer in a multi pivot table, refer to the following example code.

```Java
ISlicerCache cache = workbook.getSlicerCaches().add(pivottable1, "Product");
ISlicer slicer1 = cache.getSlicers().add(workbook.getWorksheets().get("Sheet1"), "p1", "Product", 
20, 20, 100,200);
cache.getPivotTables().addPivotTable(pivottable2);
      
// Set slicer style to built-in style
slicer1.setStyle(workbook.getTableStyles().get("SlicerStyleLight2"));
```