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

请求编写Google Sheets脚本:添加带分组的试验行并支持起始位置输入

表格自动化扩展解决方案(含自定义菜单与用户输入功能)

下面是完整的Google Apps脚本,实现你需要的所有自动化操作,同时支持用户输入新行起始位置:

// 表格打开时自动创建自定义菜单
function onOpen() {
  const ui = SpreadsheetApp.getUi();
  ui.createMenu('表格自动化')
    .addItem('添加新分组', 'addNewGroup')
    .addToUi();
}

// 核心功能:添加新分组并完成所有设置
function addNewGroup() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getActiveSheet();
  
  // 弹窗让用户输入新分组的起始行号
  const input = Browser.inputBox('设置新分组位置', '请输入要插入新8行的起始行号(整数)', Browser.Buttons.OK_CANCEL);
  
  // 用户取消输入则终止操作
  if (input === 'cancel') return;
  
  const startRow = parseInt(input);
  // 验证输入有效性
  if (isNaN(startRow) || startRow < 2) {
    Browser.msgBox('输入错误', '请输入有效的正整数行号(至少为2,避免覆盖表头)', Browser.Buttons.OK);
    return;
  }
  
  try {
    // 1. 在指定起始行前插入8行
    sheet.insertRowsBefore(startRow, 8);
    
    // 2. 设置行分组:首行为顶级父行,其余7行作为子行缩进1级
    const childRowsRange = sheet.getRange(startRow + 1, 1, 7, sheet.getLastColumn());
    childRowsRange.shiftRowGroupDepth(1);
    
    // 3. 复制上一组顶级行的表头与计算公式
    const sourceRow = sheet.getRange(startRow - 1, 1, 1, sheet.getLastColumn());
    const targetRow = sheet.getRange(startRow, 1, 1, sheet.getLastColumn());
    // 先复制公式,再复制格式
    sourceRow.copyTo(targetRow, SpreadsheetApp.CopyPasteType.PASTE_FORMULA, false);
    sourceRow.copyTo(targetRow, SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false);
    
    // 4. 折叠新添加的分组
    const newGroup = sheet.getRowGroup(startRow, 8);
    newGroup.collapse();
    
    Browser.msgBox('操作完成', '已成功添加新分组并完成所有配置', Browser.Buttons.OK);
  } catch (error) {
    Browser.msgBox('操作失败', '错误信息:' + error.message, Browser.Buttons.OK);
  }
}

功能说明

  • 自定义菜单:打开表格后顶部会出现「表格自动化」菜单,点击「添加新分组」即可触发操作
  • 用户指定位置:通过弹窗输入起始行号,灵活控制新分组的插入位置
  • 自动插入8行:在指定位置前插入8行数据行
  • 智能分组:新插入的8行自动分组,首行作为顶级父行,其余7行缩进为子行
  • 公式与格式复制:自动复制上一组顶级行的计算公式和表头格式,保证样式与逻辑一致
  • 自动折叠:完成操作后自动折叠新分组,保持表格整洁

使用步骤

  1. 打开你的Google表格,点击「扩展程序」→「Apps脚本」
  2. 删除现有脚本内容,粘贴上述代码
  3. 保存脚本(可命名为「TableAutomation」),关闭脚本编辑器
  4. 刷新表格,顶部菜单栏会出现「表格自动化」选项
  5. 点击「添加新分组」,按照提示输入起始行号即可完成所有操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 11:15:00