[]
        
(Showing Draft Content)

带切片器的自动筛选表格

在 GcExcel Java中, 可以使用 ISlicerCaches 接口的方法自动筛选带有切片器的表格。这有助于为表创建新的切片器缓存。

要使用切片器自动筛选表格,请参阅以下示例代码。

// 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 table
worksheet.getRange("A:F").setColumnWidth(15);
worksheet.getRange("A1:F16").setValue(sourceData);
ITable table = worksheet.getTables().add(worksheet.getRange("A1:F16"), true);
table.getColumns().get(3).getDataBodyRange().setNumberFormat("$#,##0.00");

// Create slicer cache for table.
ISlicerCache cache = workbook.getSlicerCaches().add(table, "Category", "categoryCache");

// Add slicer for table
ISlicer slicer1 = cache.getSlicers().add(workbook.getWorksheets().get("Sheet1"), "cate1", 
"Category", 20, 550, 100, 200);

// Apply table filter
// This synchronizes automatically to the slicer. The slicer1's selected item is "Fruit".
worksheet.getRange("A1:F16").autoFilter(2, "Fruit");