You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Google Apps Script API编程重命名复制后的Google Sheets Table?

如何通过Google Apps Script重命名复制后的Table

可行,目前Google Apps Script的原生SpreadsheetApp服务暂未提供直接操作Table的API,但可以通过**Google Sheets Advanced Service(即Sheets API)**实现Table重命名,具体步骤和示例如下:

1. 启用Sheets Advanced Service

在Google Apps Script编辑器中:

  • 点击左侧菜单栏的「服务」按钮
  • 点击「添加服务」
  • 找到「Google Sheets API」,点击「添加」完成启用

2. 核心实现逻辑

通过Sheets API的batchUpdate方法,发送UpdateTableRequest请求,修改目标Table的名称属性。

示例代码

function renameCopiedTable() {
  const activeSs = SpreadsheetApp.getActiveSpreadsheet();
  const ssId = activeSs.getId();
  // 复制后的目标工作表名称
  const targetSheetName = "Copy of SourceSheet";
  // 想要设置的新Table名称
  const newTableName = "MyNewTableName";

  // 获取工作表及其中的Table信息
  const sheetData = Sheets.Spreadsheets.get(ssId, {
    fields: "sheets(properties(title),tables(tableId,name))"
  });

  // 定位目标工作表中的Table
  const targetSheet = sheetData.sheets.find(sheet => sheet.properties.title === targetSheetName);
  if (!targetSheet || !targetSheet.tables?.length) {
    throw new Error("未在目标工作表中找到Table");
  }

  // 假设仅需修改第一个Table,若多个Table可通过名称前缀筛选(如原名称+_x)
  const targetTable = targetSheet.tables[0];

  // 构造更新请求
  const updateRequests = [{
    updateTable: {
      table: {
        tableId: targetTable.tableId,
        name: newTableName
      },
      fields: "name"
    }
  }];

  // 执行更新
  Sheets.Spreadsheets.batchUpdate({ requests: updateRequests }, ssId);
}

注意事项

  • 首次运行脚本时,需要授权脚本访问Google Sheets API的权限
  • 若工作表包含多个Table,可通过筛选targetSheet.tables中name属性(如匹配原TableName_前缀)来定位目标Table
  • 确保目标Table的新名称在当前电子表格中唯一,避免命名冲突

内容的提问来源于stack exchange,提问作者NotSoOldNick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 17:55:09