[]
一个 ITable 定义结构化数据区域,可包含标题行、数据行、汇总、筛选、排序和表特定格式。调用 ITables.add(IRange,boolean) 向工作表添加表时会返回 ITable 对象。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Name", "Value"},
{"Test", 100},
{"Hello", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
table.setDisplayName("Table1");
voidvoiddelete()ITable 对象,并从工作表中清除单元格数据。voidIAutoFilter。booleanITable 中的列集合。IRange。booleanIRange 对象。getName()getRange()IRange 对象。getRows()ITable 中数据行的集合。booleanbooleanbooleanITable 是否显示包含列名的标题行。booleanITable。booleanbooleanbooleanITable 显示行条纹。booleangetSort()ITable 的排序设置。voidITable 调整为新的区域,而不插入或移动单元格。voidsetAutoGenerateColumns(boolean value) voidsetBindingPath(String value) voidsetComment(String value) voidsetDisplayName(String value) ITable 设置显示名称。voidsetExpandBoundRows(boolean value) voidvoidsetShowAutoFilter(boolean value) voidsetShowAutoFilterDropDown(boolean value) voidsetShowHeaders(boolean value) ITable 是否显示包含列名的标题行。voidsetShowTableStyleColumnStripes(boolean value) ITable。voidsetShowTableStyleFirstColumn(boolean value) voidsetShowTableStyleLastColumn(boolean value) ITable 显示最后一列样式。voidsetShowTableStyleRowStripes(boolean value) ITable 显示行条纹。voidsetShowTotals(boolean value) voidsetTableStyle(ITableStyle value) toJson()使用此方法可以检索在工作表中标识该表的表名。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Product", "Amount"},
{"Apple", 100},
{"Orange", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
table.setName("SalesTable");
String name = table.getName();
使用此方法可设置用于在工作表中标识该表的表名。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Product", "Amount"},
{"Apple", 100},
{"Orange", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
table.setName("SalesTable");
ITable namedTable = worksheet.getTables().get("SalesTable");
String namedTableAddress = namedTable.getRange().getAddress();
value - 表格的名称。显示名称是面向用户的表名称。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Product", "Amount"},
{"Apple", 100},
{"Orange", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
table.setDisplayName("SalesTable");
String displayName = table.getDisplayName();
ITable 设置显示名称。显示名称是表面向用户的名称。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Product", "Amount"},
{"Apple", 100},
{"Orange", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
table.setDisplayName("SalesTable");
value - 指定的 ITable 的显示名称。此方法返回先前通过 setComment(String) 为当前表分配的文本。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Name", "Value"},
{"Test", 100},
{"Total", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
table.setComment("Monthly summary table");
String comment = table.getComment();
使用此方法可为当前表分配注释文本。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Name", "Value"},
{"Test", 100},
{"Total", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
table.setComment("Monthly summary table");
value - 与表对象关联的注释。ITable 的排序设置。返回的 ISort 对象提供对应用于表数据的排序字段和排序顺序的访问。配置排序字段后,调用 ISort.apply() 对表排序。
worksheet.getRange("A1:B4").setValue(new Object[][] {
{"Name", "Score"},
{"Tom", 80},
{"Nancy", 95},
{"Jack", 88}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B4"), true);
ISort sort = table.getSort();
sort.getSortFields().add(new ValueSortField(worksheet.getRange("B2:B4"), SortOrder.Descending));
sort.apply();
IAutoFilter。返回的自动筛选表示应用于表区域的筛选设置。
worksheet.getRange("A1:C4").setValue(new Object[][] {
{"Name", "Value", "Category"},
{"A", 100, "X"},
{"B", 200, "Y"},
{"C", 100, "X"}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:C4"), true);
table.getRange().autoFilter(2, "X");
IAutoFilter autoFilter = table.getAutoFilter();
Object criteria1 = autoFilter.getFilters().get(2).getCriteria1();
IRange 对象。
worksheet.getRange("A1:B3").setValue(new Object[][] {{"Name", "Value"}, {"A", 100}, {"B", 200}});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
IRange tableRange = table.getRange();
IRange。返回的区域包含标题行和插入行之间的表行。它不包括标题行。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Name", "Value"},
{"Apple", 100},
{"Pear", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
IRange dataRange = table.getDataRange();
IRange 对象。使用此方法可以访问包含表列标题的单元格。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Product", "Amount"},
{"Apple", 100},
{"Pear", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
IRange headerRange = table.getHeaderRange();
headerRange.get(0, 1).setValue("Total");
当汇总行可见时,返回 IRange,表示此 ITable 的汇总行。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Product", "Amount"},
{"Apple", 100},
{"Orange", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
table.setShowTotals(true);
IRange totalsRange = table.getTotalsRange();
仅当显示表标题且表已启用自动筛选时,此方法才返回 true。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Name", "Value"},
{"Test", 100},
{"Hello", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
table.setShowAutoFilter(true);
boolean showAutoFilter = table.getShowAutoFilter();
true;否则返回 false。仅当显示表头且为表启用了自动筛选时,此方法才会设置 true。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Name", "Value"},
{"Test", 100},
{"Hello", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
table.setShowAutoFilter(true);
value - 是否显示自动筛选。此属性指示是否在表标题行中显示下拉按钮。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Name", "Value"},
{"Test", 100},
{"Hello", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
boolean showAutoFilterDropDown = table.getShowAutoFilterDropDown();
true;否则返回 false。此属性指示表头行中是否显示下拉按钮。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Name", "Value"},
{"Test", 100},
{"Hello", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
table.setShowAutoFilterDropDown(true);
value - 表格筛选按钮是否可见。ITable 是否显示包含列名的标题行。使用此属性可查看表是否显示包含列名的标题行。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Name", "Value"},
{"Apple", 100},
{"Orange", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
boolean showHeaders = table.getShowHeaders();
ITable 显示包含列名的标题行,则为 true;否则为 false。ITable 是否显示包含列名的标题行。使用此属性可设置表是否显示包含列名的标题行。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Name", "Value"},
{"Apple", 100},
{"Orange", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
table.setShowHeaders(true);
value - 是否显示此 ITable 中包含列名的标题行。ITable。当此属性为 true 时,应用的表样式会对表列使用交替格式。
worksheet.getRange("A1:C3").setValue(new Object[][] {
{"Name", "Q1", "Q2"},
{"Tea", 100, 120},
{"Coffee", 90, 110}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:C3"), true);
table.setShowTableStyleColumnStripes(true);
boolean showColumnStripes = table.getShowTableStyleColumnStripes();
true;否则返回 false。ITable。当此属性为 true 时,应用的表格样式会对表格列使用交替格式。
worksheet.getRange("A1:C3").setValue(new Object[][] {
{"Name", "Q1", "Q2"},
{"Tea", 100, 120},
{"Coffee", 90, 110}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:C3"), true);
table.setShowTableStyleColumnStripes(true);
value - 是否将列条纹表格样式应用于此 ITable。此属性指示表样式是否应用于当前 ITable 的第一列。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Name", "Amount"},
{"Apple", 100},
{"Orange", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
table.setShowTableStyleFirstColumn(true);
boolean showFirstColumn = table.getShowTableStyleFirstColumn();
true;否则为 false。此属性指示是否将第一列表格样式元素应用于当前 ITable 的第一列。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Name", "Amount"},
{"Apple", 100},
{"Orange", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
table.setShowTableStyleFirstColumn(true);
value - 表格样式是否格式化第一列。此属性指示表样式是否应用于当前 ITable 的最后一列。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Name", "Amount"},
{"Apple", 100},
{"Pear", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
table.setShowTableStyleLastColumn(true);
boolean showTableStyleLastColumn = table.getShowTableStyleLastColumn();
true;否则为 false。ITable 显示最后一列样式。当此属性为 true 时,应用的表格样式可以突出显示表格的最后一列。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Name", "Amount"},
{"Apple", 100},
{"Pear", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
table.setShowTableStyleLastColumn(true);
value - 此 ITable 是否显示最后一列样式。ITable 显示行条纹。当此属性为 true 时,应用的表样式使用交替行格式。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Name", "Value"},
{"Tea", 10},
{"Coffee", 12}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
boolean showRowStripes = table.getShowTableStyleRowStripes();
true;否则返回 false。ITable 显示行条纹。当此属性为 true 时,应用的表样式将使用交替行格式。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Name", "Value"},
{"Tea", 10},
{"Coffee", 12}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
table.setShowTableStyleRowStripes(true);
value - 是否对此 ITable 显示行条纹。使用此方法可以确定表当前是否显示汇总行。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Product", "Amount"},
{"Apple", 100},
{"Orange", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
table.setShowTotals(true);
boolean showTotals = table.getShowTotals();
true;否则返回 false。使用此方法可设置表是否显示总计行。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Product", "Amount"},
{"Apple", 100},
{"Orange", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
table.setShowTotals(true);
value - 总计行是否可见。ITable 中的列集合。返回的 ITableColumns 集合包含属于该表的所有列,包括其名称和数据区域。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Name", "Sales"},
{"Apple", 100},
{"Orange", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
ITableColumns columns = table.getColumns();
ITableColumn salesColumn = columns.get(1);
ITable 中数据行的集合。返回的 ITableRows 对象包含属于表数据区域的 ITableRow 对象。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Name", "Value"},
{"Apple", 100},
{"Pear", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
ITableRows rows = table.getRows();
ITableRow firstRow = rows.get(0);
返回的 ITableStyle 表示当前应用于该表格的样式,包括内置表格样式和自定义表格样式。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Name", "Value"},
{"Apple", 100},
{"Orange", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
table.setTableStyle(workbook.getTableStyles().get("TableStyleLight11"));
ITableStyle tableStyle = table.getTableStyle();
使用此方法可将内置表格样式或自定义表格样式应用于该表格。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Name", "Value"},
{"Apple", 100},
{"Orange", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
table.setTableStyle(workbook.getTableStyles().get("TableStyleLight11"));
value - 应用于表格的表格样式。ITable 调整为新的区域,而不插入或移动单元格。新区域必须保留在与当前表相同的标题行上,并且必须与当前表区域重叠。此方法不会重新排列工作表单元格;它只更新表边界。
worksheet.getRange("A1:C4").setValue(new Object[][] {
{"Name", "Region", "Sales"},
{"Alice", "East", 100},
{"Bob", "West", 120},
{"Carol", "North", 140}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:C4"), true);
worksheet.getRange("D1:D4").setValue(new Object[][] {
{"Status"},
{"Open"},
{"Closed"},
{"Open"}
});
table.resize(worksheet.getRange("A1:D4"));
range - 新的表区域。必须是单个非空的 IRange,且与当前表区域重叠。IllegalArgumentException - 如果 range 为 null、为空、包含多个选择、不与当前表区域重叠,或未从与当前表相同的行开始。UnsupportedOperationException - 如果表绑定到数据管理器。ITable 对象,并从工作表中清除单元格数据。使用此方法可以同时移除表定义和表覆盖的单元格。若要保留数据并仅移除表对象,请改用 convertToRange()。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Name", "Value"},
{"Test", 100},
{"Sample", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
table.delete();
绑定路径标识表绑定到数据源时使用的数据路径。
worksheet.setDataSource(new JsonDataSource(
"{\"sales\":[{\"name\":\"Alice\",\"amount\":100},{\"name\":\"Bob\",\"amount\":200}]}"));
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
table.getColumns().get(0).setDataField("name");
table.getColumns().get(1).setDataField("amount");
table.setBindingPath("sales");
String bindingPath = table.getBindingPath();
当表绑定到数据源时,绑定路径用于标识所使用的数据路径。
worksheet.setDataSource(new JsonDataSource(
"{\"sales\":[{\"name\":\"Alice\",\"amount\":100},{\"name\":\"Bob\",\"amount\":200}]}"));
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
table.getColumns().get(0).setDataField("name");
table.getColumns().get(1).setDataField("amount");
table.setBindingPath("sales");
Object firstName = worksheet.getRange("A2").getValue();
value - 当前表的绑定路径。当此属性为 true 时,表可以在数据绑定期间根据绑定数据源中的字段创建列。
worksheet.setDataSource(new JsonDataSource("{\"ds\":[{\"name\":\"jack\",\"age\":12}]}"));
ITable table = worksheet.getTables().add(worksheet.getRange("A1:C2"), true);
table.setAutoGenerateColumns(true);
table.setBindingPath("ds");
boolean autoGenerateColumns = table.getAutoGenerateColumns();
true;否则为 false。当此属性为 true 时,表可以在数据绑定期间根据已绑定数据源中的字段创建列。
worksheet.setDataSource(new JsonDataSource("{\"ds\":[{\"name\":\"jack\",\"age\":12}]}"));
ITable table = worksheet.getTables().add(worksheet.getRange("A1:C2"), true);
table.setAutoGenerateColumns(true);
table.setBindingPath("ds");
value - 表在绑定到数据源时是否自动生成列。
worksheet.getRange("A1:B3").setValue(new Object[][] {{"Name", "Value"}, {"A", 100}, {"B", 200}});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
String json = table.toJson();
table.fromJson(json);
json - 用于生成表的 JSON 字符串。
worksheet.getRange("A1:B3").setValue(new Object[][] {{"Name", "Value"}, {"A", 100}, {"B", 200}});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
String json = table.toJson();
此属性指示当绑定数据发生变化时,是否允许表按整行扩展或收缩。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Name", "Value"},
{"Item A", 100},
{"Item B", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
table.setExpandBoundRows(true);
boolean expandBoundRows = table.getExpandBoundRows();
true;否则为 false。此属性指示当其绑定的数据发生更改时,是否允许该表按整行扩展或收缩。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Name", "Value"},
{"Item A", 100},
{"Item B", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
table.setExpandBoundRows(true);
value - 该表在数据绑定期间是否可以添加或删除整个工作表行。调用此方法后,单元格会作为普通区域数据保留在工作表上,而不是作为 ITable 管理。
worksheet.getRange("A1:B3").setValue(new Object[][] {
{"Name", "Value"},
{"Test", 100},
{"Hello", 200}
});
ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
table.convertToRange();