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()}])`);
}

方法

addColumn(index, values, name)

向表中添加新列。

addRow(index, values)

向表添加一行。

addRows(index, values)

向表中添加一行或多行。

clearFilters()

清除当前表上应用的所有筛选器。

convertToRange()

将表转换为普通单元格区域。 保留所有数据。

delete()

删除表。

deleteRowsAt(index, count)

删除给定索引处的指定行数。

getAutoFilter()

表示 AutoFilter 表的 对象。

getColumn(key)

按名称或 ID 获取 column 对象。 如果该列不存在,则此方法返回 undefined

getColumnById(key)

按 ID 获取列对象。 如果该列不存在,将返回未定义。

getColumnByName(key)

按名称获取列对象。 如果该列不存在,将返回未定义。

getColumns()

表示表中所有列的集合。

getHeaderRowRange()

获取与表的标题行相关的 range 对象。

getHighlightFirstColumn()

指定第一列是否包含特殊格式。

getHighlightLastColumn()

指定最后一列是否包含特殊格式。

getId()

返回用于唯一标识指定工作簿中表的值。 即使表被重命名,标识符的值仍保持不变。

getLegacyId()

返回数字 ID。

getName()

表的名称。

getPredefinedTableStyle()

表示表格样式的常量值。 可能的值为:“TableStyleLight1”到“TableStyleLight21”、“TableStyleMedium1”到“TableStyleMedium28”、“TableStyleDark1”到“TableStyleDark11”。 还可以指定工作簿中显示的用户定义的自定义样式。

getRange()

获取与整个表相关的 range 对象。

getRangeBetweenHeaderAndTotal()

获取与表的数据体相关的 range 对象。

getRowCount()

获取表格中的行数。

getShowBandedColumns()

指定列是否显示带状格式,其中奇数列的突出显示方式与偶数列不同,以便更轻松地阅读表格。

getShowBandedRows()

指定行是否显示带状格式,其中奇数行的突出显示方式与偶数行不同,以便更轻松地阅读表格。

getShowFilterButton()

指定筛选器按钮是否在每个列标题的顶部可见。 仅当 table 中包含标题行时,才允许设定此设置。

getShowHeaders()

指定标题行是否可见。 该值可以设置为显示或删除标头行。

getShowTotals()

指定总行是否可见。 该值可以设置为显示或删除总计行。

getSort()

表示表的排序。

getTotalRowRange()

获取与表的总计行相关的 range 对象。

getWorksheet()

包含当前表格的工作表。

reapplyFilters()

重新应用当前表上的所有筛选器。

resize(newRange)

将表大小调整为新范围。 新区域必须与原始表区域重叠, (或表) 顶部的标题必须位于同一行中。

setHighlightFirstColumn(highlightFirstColumn)

指定第一列是否包含特殊格式。

setHighlightLastColumn(highlightLastColumn)

指定最后一列是否包含特殊格式。

setName(name)

表的名称。

setPredefinedTableStyle(predefinedTableStyle)

表示表格样式的常量值。 可能的值为:“TableStyleLight1”到“TableStyleLight21”、“TableStyleMedium1”到“TableStyleMedium28”、“TableStyleDark1”到“TableStyleDark11”。 还可以指定工作簿中显示的用户定义的自定义样式。

setShowBandedColumns(showBandedColumns)

指定列是否显示带状格式,其中奇数列的突出显示方式与偶数列不同,以便更轻松地阅读表格。

setShowBandedRows(showBandedRows)

指定行是否显示带状格式,其中奇数行的突出显示方式与偶数行不同,以便更轻松地阅读表格。

setShowFilterButton(showFilterButton)

指定筛选器按钮是否在每个列标题的顶部可见。 仅当 table 中包含标题行时,才允许设定此设置。

setShowHeaders(showHeaders)

指定标题行是否可见。 该值可以设置为显示或删除标头行。

setShowTotals(showTotals)

指定总行是否可见。 该值可以设置为显示或删除总计行。

方法详细信息

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()

表示 AutoFilter 表的 对象。

getAutoFilter(): AutoFilter;

返回

getColumn(key)

按名称或 ID 获取 column 对象。 如果该列不存在,则此方法返回 undefined

getColumn(key: number | string): TableColumn | undefined;

参数

key

number | string

列名称或 ID。

返回

示例

/**
 * 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。

返回

getColumnByName(key)

按名称获取列对象。 如果该列不存在,将返回未定义。

getColumnByName(key: string): TableColumn | undefined;

参数

key

string

列名称。

返回

示例

/**
 * 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()

获取与表的数据体相关的 range 对象。

getRangeBetweenHeaderAndTotal(): Range;

返回

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()

表示表的排序。

getSort(): TableSort;

返回

getTotalRowRange()

获取与表的总计行相关的 range 对象。

getTotalRowRange(): Range;

返回

getWorksheet()

包含当前表格的工作表。

getWorksheet(): Worksheet;

返回

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);
}