ExcelScript.Table interface
表示 Excel 表格。
注解
示例
/**
* This script creates a table from the current sheet's used range.
* It then adds a total row to the table with the SUM of the last column.
*/
function main(workbook: ExcelScript.Workbook) {
// Get the used range of the current worksheet.
const sheet = workbook.getActiveWorksheet();
const range = sheet.getUsedRange();
// Create a table that has headers from that range.
const table = sheet.addTable(range, true);
// Have the table display the SUM for the last column.
table.setShowTotals(true);
const lastColumn = table.getColumn(table.getColumns().length);
lastColumn.getTotalRowRange().setFormula(`=SUBTOTAL(109,[${lastColumn.getName()}])`);
}
方法
add |
向表中添加新列。 |
add |
向表添加一行。 |
add |
向表中添加一行或多行。 |
clear |
清除当前表上应用的所有筛选器。 |
convert |
将表转换为普通单元格区域。 保留所有数据。 |
delete() | 删除表。 |
delete |
删除给定索引处的指定行数。 |
get |
表示 |
get |
按名称或 ID 获取 column 对象。 如果该列不存在,则此方法返回 |
get |
按 ID 获取列对象。 如果该列不存在,将返回未定义。 |
get |
按名称获取列对象。 如果该列不存在,将返回未定义。 |
get |
表示表中所有列的集合。 |
get |
获取与表的标题行相关的 range 对象。 |
get |
指定第一列是否包含特殊格式。 |
get |
指定最后一列是否包含特殊格式。 |
get |
返回用于唯一标识指定工作簿中表的值。 即使表被重命名,标识符的值仍保持不变。 |
get |
返回数字 ID。 |
get |
表的名称。 |
get |
表示表格样式的常量值。 可能的值为:“TableStyleLight1”到“TableStyleLight21”、“TableStyleMedium1”到“TableStyleMedium28”、“TableStyleDark1”到“TableStyleDark11”。 还可以指定工作簿中显示的用户定义的自定义样式。 |
get |
获取与整个表相关的 range 对象。 |
get |
获取与表的数据体相关的 range 对象。 |
get |
获取表格中的行数。 |
get |
指定列是否显示带状格式,其中奇数列的突出显示方式与偶数列不同,以便更轻松地阅读表格。 |
get |
指定行是否显示带状格式,其中奇数行的突出显示方式与偶数行不同,以便更轻松地阅读表格。 |
get |
指定筛选器按钮是否在每个列标题的顶部可见。 仅当 table 中包含标题行时,才允许设定此设置。 |
get |
指定标题行是否可见。 该值可以设置为显示或删除标头行。 |
get |
指定总行是否可见。 该值可以设置为显示或删除总计行。 |
get |
表示表的排序。 |
get |
获取与表的总计行相关的 range 对象。 |
get |
包含当前表格的工作表。 |
reapply |
重新应用当前表上的所有筛选器。 |
resize(new |
将表大小调整为新范围。 新区域必须与原始表区域重叠, (或表) 顶部的标题必须位于同一行中。 |
set |
指定第一列是否包含特殊格式。 |
set |
指定最后一列是否包含特殊格式。 |
set |
表的名称。 |
set |
表示表格样式的常量值。 可能的值为:“TableStyleLight1”到“TableStyleLight21”、“TableStyleMedium1”到“TableStyleMedium28”、“TableStyleDark1”到“TableStyleDark11”。 还可以指定工作簿中显示的用户定义的自定义样式。 |
set |
指定列是否显示带状格式,其中奇数列的突出显示方式与偶数列不同,以便更轻松地阅读表格。 |
set |
指定行是否显示带状格式,其中奇数行的突出显示方式与偶数行不同,以便更轻松地阅读表格。 |
set |
指定筛选器按钮是否在每个列标题的顶部可见。 仅当 table 中包含标题行时,才允许设定此设置。 |
set |
指定标题行是否可见。 该值可以设置为显示或删除标头行。 |
set |
指定总行是否可见。 该值可以设置为显示或删除总计行。 |
方法详细信息
addColumn(index, values, name)
向表中添加新列。
addColumn(
index?: number,
values?: (boolean | string | number)[],
name?: string
): TableColumn;
参数
- index
-
number
可选。 指定新列的相对位置。 如果为 NULL 或 -1,将在末尾进行添加。 索引更高的列将被移到一侧。 从零开始编制索引。
- values
-
(boolean | string | number)[]
可选。 表列的无格式值的 1 维数组。
- name
-
string
可选。 指定新列的名称。 如果为 Null,将使用默认名称。
返回
示例
/**
* This script adds a new column to a table.
*/
function main(workbook: ExcelScript.Workbook) {
// Get the first table in the workbook.
const table = workbook.getTables()[0];
// Append an empty column to the table with the header "Total".
table.addColumn(-1, null, "Total");
}
addRow(index, values)
向表添加一行。
addRow(index?: number, values?: (boolean | string | number)[]): void;
参数
- index
-
number
可选。 指定新行的相对位置。 如果为 NULL 或 -1,将在末尾进行添加。 插入的行下方的所有行都会向下移动。 从零开始编制索引。
- values
-
(boolean | string | number)[]
可选。 表行的未格式化值的 1 维数组。
返回
void
示例
/**
* This script adds a row to an existing table.
*/
function main(workbook: ExcelScript.Workbook) {
// Get the first table in the current worksheet.
const selectedSheet = workbook.getActiveWorksheet();
const table = selectedSheet.getTables()[0];
// Initialize the data to be added as a table row.
// Note that length of the array must match the number of columns in the table.
let rowData = ["Carrots", "Vegetable", 750];
// Add a row to the end of the table.
table.addRow(-1, rowData);
}
addRows(index, values)
向表中添加一行或多行。
addRows(index?: number, values?: (boolean | string | number)[][]): void;
参数
- index
-
number
可选。 指定新行的相对位置。 如果为 NULL 或 -1,将在末尾进行添加。 插入的行下方的所有行都会向下移动。 从零开始编制索引。
- values
-
(boolean | string | number)[][]
可选。 未设置格式的表行值的二维数组。
返回
void
示例
/**
* This script adds multiple rows to an existing table.
*/
function main(workbook: ExcelScript.Workbook) {
// Get the first table in the current worksheet.
const selectedSheet = workbook.getActiveWorksheet();
const table = selectedSheet.getTables()[0];
// Initialize the data to be added as table rows.
// Note that length of the array must match the number of columns in the table.
let rowData = [["Apples", "Fruit", 5000],
["Celery", "Vegetable", 600],
["Onions", "Vegetable", 1500]];
// Add the rows to the end of the table.
table.addRows(-1, rowData);
}
clearFilters()
清除当前表上应用的所有筛选器。
clearFilters(): void;
返回
void
示例
/**
* This script clears the filters from all tables in the workbook.
*/
function main(workbook: ExcelScript.Workbook) {
// Get all the tables in the workbook.
const tables = workbook.getTables();
// Remove any active filters from each table.
tables.forEach((table) => {
table.clearFilters();
});
}
convertToRange()
将表转换为普通单元格区域。 保留所有数据。
convertToRange(): Range;
返回
示例
/**
* This script converts a table to a range and removes the formatting.
*/
function main(workbook: ExcelScript.Workbook) {
// Get the first table in the current worksheet.
const selectedSheet = workbook.getActiveWorksheet();
const table = selectedSheet.getTables()[0];
// Convert the table to a range.
const formerTable = table.convertToRange();
// Remove the formatting from the table
formerTable.clear(ExcelScript.ClearApplyTo.formats);
}
delete()
删除表。
delete(): void;
返回
void
示例
/**
* This script deletes a table.
* This removes all associated data and formatting.
*/
function main(workbook: ExcelScript.Workbook) {
// Get the table named "Inventory".
const table = workbook.getTable("Inventory");
// Delete the table.
table.delete();
}
deleteRowsAt(index, count)
删除给定索引处的指定行数。
deleteRowsAt(index: number, count?: number): void;
参数
- index
-
number
要删除的行的索引值。 警告:行的索引可能已从确定要用于删除的值的时间开始移动。
- count
-
number
要删除的行数。 默认情况下,将删除单个行。 注意:同时删除超过 1000 行可能会导致 Power Automate 超时。
返回
void
getAutoFilter()
getColumn(key)
按名称或 ID 获取 column 对象。 如果该列不存在,则此方法返回 undefined
。
getColumn(key: number | string): TableColumn | undefined;
参数
- key
-
number | string
列名称或 ID。
返回
ExcelScript.TableColumn | undefined
示例
/**
* This script adjusts the indentation of a specific table column.
*/
function main(workbook: ExcelScript.Workbook) {
// Get the first table in the current worksheet.
const selectedSheet = workbook.getActiveWorksheet();
const table = selectedSheet.getTables()[0];
// Get the data range of the second column.
const secondColumn = table.getColumn(2);
const data = secondColumn.getRangeBetweenHeaderAndTotal();
// Add an indentation of 1 character space to the data range.
data.getFormat().adjustIndent(1);
}
getColumnById(key)
按 ID 获取列对象。 如果该列不存在,将返回未定义。
getColumnById(key: number): TableColumn | undefined;
参数
- key
-
number
列 ID。
返回
ExcelScript.TableColumn | undefined
getColumnByName(key)
按名称获取列对象。 如果该列不存在,将返回未定义。
getColumnByName(key: string): TableColumn | undefined;
参数
- key
-
string
列名称。
返回
ExcelScript.TableColumn | undefined
示例
/**
* This script removes a specific column from a table.
*/
function main(workbook: ExcelScript.Workbook) {
// Get the table named "Inventory".
const table = workbook.getTable("Inventory");
// If it exists, remove the column named "Category".
let categoryColumn = table.getColumnByName("Category");
if (categoryColumn) {
categoryColumn.delete();
}
}
getColumns()
表示表中所有列的集合。
getColumns(): TableColumn[];
返回
示例
/**
* This script adds a new column to a table.
* It then sets the formulas in the new column to be the product
* of the values in the two preceding columns.
*/
function main(workbook: ExcelScript.Workbook) {
// Get the first table in the workbook.
const table = workbook.getTables()[0];
// Append an empty column to the table with the header "Total".
const totalColumn = table.addColumn(-1, null, "Total");
// Get the names of the two preceding columns.
const productColumnName1 = table.getColumns()[totalColumn.getIndex() - 1].getName();
const productColumnName2 = table.getColumns()[totalColumn.getIndex() - 2].getName();
// Set the formulas in the "Total" column to be the product of the two preceding columns.
totalColumn.getRangeBetweenHeaderAndTotal().setFormula(
`=[@[${productColumnName1}]]*[@[${productColumnName2}]]`
);
}
getHeaderRowRange()
获取与表的标题行相关的 range 对象。
getHeaderRowRange(): Range;
返回
示例
/**
* This script centers the text in a table's header row cells.
*/
function main(workbook: ExcelScript.Workbook) {
// Get the first table on the current worksheet.
const currentSheet = workbook.getActiveWorksheet();
const table = currentSheet.getTables()[0];
// Get the header range.
const headerRange = table.getHeaderRowRange();
// Set the horizontal text alignment to `center`.
headerRange.getFormat().setHorizontalAlignment(ExcelScript.HorizontalAlignment.center);
}
getHighlightFirstColumn()
指定第一列是否包含特殊格式。
getHighlightFirstColumn(): boolean;
返回
boolean
getHighlightLastColumn()
指定最后一列是否包含特殊格式。
getHighlightLastColumn(): boolean;
返回
boolean
getId()
返回用于唯一标识指定工作簿中表的值。 即使表被重命名,标识符的值仍保持不变。
getId(): string;
返回
string
getLegacyId()
返回数字 ID。
getLegacyId(): string;
返回
string
getName()
表的名称。
getName(): string;
返回
string
getPredefinedTableStyle()
表示表格样式的常量值。 可能的值为:“TableStyleLight1”到“TableStyleLight21”、“TableStyleMedium1”到“TableStyleMedium28”、“TableStyleDark1”到“TableStyleDark11”。 还可以指定工作簿中显示的用户定义的自定义样式。
getPredefinedTableStyle(): string;
返回
string
getRange()
获取与整个表相关的 range 对象。
getRange(): Range;
返回
示例
/**
* This script removes any extra formatting that's been applied to a table.
* This leaves only the base table style effects.
* Any formatting outside of the table will be left as is.
*/
function main(workbook: ExcelScript.Workbook) {
// Get the first table on the current worksheet.
let worksheet = workbook.getActiveWorksheet();
let table = worksheet.getTables()[0];
// Get the range used by the table.
let range = table.getRange();
// Clear all the formatting that is not applied by the table and the table style.
range.clear(ExcelScript.ClearApplyTo.formats);
}
getRangeBetweenHeaderAndTotal()
getRowCount()
获取表格中的行数。
getRowCount(): number;
返回
number
getShowBandedColumns()
指定列是否显示带状格式,其中奇数列的突出显示方式与偶数列不同,以便更轻松地阅读表格。
getShowBandedColumns(): boolean;
返回
boolean
getShowBandedRows()
指定行是否显示带状格式,其中奇数行的突出显示方式与偶数行不同,以便更轻松地阅读表格。
getShowBandedRows(): boolean;
返回
boolean
getShowFilterButton()
指定筛选器按钮是否在每个列标题的顶部可见。 仅当 table 中包含标题行时,才允许设定此设置。
getShowFilterButton(): boolean;
返回
boolean
getShowHeaders()
指定标题行是否可见。 该值可以设置为显示或删除标头行。
getShowHeaders(): boolean;
返回
boolean
getShowTotals()
指定总行是否可见。 该值可以设置为显示或删除总计行。
getShowTotals(): boolean;
返回
boolean
getSort()
getTotalRowRange()
getWorksheet()
reapplyFilters()
重新应用当前表上的所有筛选器。
reapplyFilters(): void;
返回
void
示例
/**
* This script reapplies the filters on every table in the workbook.
*/
function main(workbook: ExcelScript.Workbook) {
// Get all the tables.
const tables = workbook.getTables();
// Iterate over every table.
tables.forEach((table) => {
// Reapply the filters to account for new table entries.
table.reapplyFilters();
});
}
resize(newRange)
将表大小调整为新范围。 新区域必须与原始表区域重叠, (或表) 顶部的标题必须位于同一行中。
resize(newRange: Range | string): void;
参数
- newRange
-
ExcelScript.Range | string
将用于确定表的新大小的 range 对象或范围地址。
返回
void
setHighlightFirstColumn(highlightFirstColumn)
指定第一列是否包含特殊格式。
setHighlightFirstColumn(highlightFirstColumn: boolean): void;
参数
- highlightFirstColumn
-
boolean
返回
void
setHighlightLastColumn(highlightLastColumn)
指定最后一列是否包含特殊格式。
setHighlightLastColumn(highlightLastColumn: boolean): void;
参数
- highlightLastColumn
-
boolean
返回
void
setName(name)
表的名称。
setName(name: string): void;
参数
- name
-
string
返回
void
setPredefinedTableStyle(predefinedTableStyle)
表示表格样式的常量值。 可能的值为:“TableStyleLight1”到“TableStyleLight21”、“TableStyleMedium1”到“TableStyleMedium28”、“TableStyleDark1”到“TableStyleDark11”。 还可以指定工作簿中显示的用户定义的自定义样式。
setPredefinedTableStyle(predefinedTableStyle: string): void;
参数
- predefinedTableStyle
-
string
返回
void
setShowBandedColumns(showBandedColumns)
指定列是否显示带状格式,其中奇数列的突出显示方式与偶数列不同,以便更轻松地阅读表格。
setShowBandedColumns(showBandedColumns: boolean): void;
参数
- showBandedColumns
-
boolean
返回
void
setShowBandedRows(showBandedRows)
指定行是否显示带状格式,其中奇数行的突出显示方式与偶数行不同,以便更轻松地阅读表格。
setShowBandedRows(showBandedRows: boolean): void;
参数
- showBandedRows
-
boolean
返回
void
示例
/**
* This script sets all the tables in the workbook to have banded rows.
*/
function main(workbook: ExcelScript.Workbook) {
// Get all the tables.
const tables = workbook.getTables();
// For each table, set the banded row formatting to true.
tables.forEach((table) => {
table.setShowBandedRows(true);
});
}
setShowFilterButton(showFilterButton)
指定筛选器按钮是否在每个列标题的顶部可见。 仅当 table 中包含标题行时,才允许设定此设置。
setShowFilterButton(showFilterButton: boolean): void;
参数
- showFilterButton
-
boolean
返回
void
setShowHeaders(showHeaders)
指定标题行是否可见。 该值可以设置为显示或删除标头行。
setShowHeaders(showHeaders: boolean): void;
参数
- showHeaders
-
boolean
返回
void
示例
/**
* This script makes a table's headers not visible in the grid.
*/
function main(workbook: ExcelScript.Workbook) {
// Get the table named "CoverageTable".
const coverageTable = workbook.getTable("CoverageTable");
// Make the header row not visible.
coverageTable.setShowHeaders(false);
}
setShowTotals(showTotals)
指定总行是否可见。 该值可以设置为显示或删除总计行。
setShowTotals(showTotals: boolean): void;
参数
- showTotals
-
boolean
返回
void
示例
/**
* This script adds the Total Row to an existing table.
*/
function main(workbook: ExcelScript.Workbook) {
// Get the first table in the current worksheet.
const selectedSheet = workbook.getActiveWorksheet();
const table = selectedSheet.getTables()[0];
// Set the Total Row to show.
table.setShowTotals(true);
}