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

基于单元格值调整Google Sheets行列数的脚本实现需求

Google Sheets脚本实现:根据单元格值自动调整签到表行列数

核心思路

  1. 读取指定单元格的上课天数和学生数量
  2. 清除原有签到表区域的旧内容与格式,避免残留数据干扰
  3. 根据读取的数值插入对应数量的列和行
  4. 自动生成签到表的基础表头(姓名列、日期列)

完整脚本代码

function adjustSignInTable() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  
  // 可根据实际需求修改单元格位置
  const classDays = sheet.getRange("A1").getValue(); // 上课天数所在单元格
  const studentCount = sheet.getRange("B1").getValue(); // 学生数量所在单元格

  // 校验输入有效性
  if (typeof classDays !== 'number' || classDays < 1 || typeof studentCount !== 'number' || studentCount < 1) {
    SpreadsheetApp.getUi().alert("请在指定单元格输入大于0的有效数字!");
    return;
  }

  // 定义签到表起始位置(C1为姓名列表头)
  const startCol = 3;
  const startRow = 1;

  // 清除原有签到表区域的内容和格式
  const oldRange = sheet.getRange(startRow, startCol, sheet.getLastRow() - startRow + 1, sheet.getLastColumn() - startCol + 1);
  oldRange.clear({contentsOnly: true, formatsOnly: true});

  // 添加日期列:姓名列后插入对应天数的列
  sheet.getRange(startRow, startCol + 1, 1, classDays).insertColumnsAfter(startCol, classDays);
  // 设置日期列表头(示例:第1天、第2天...)
  for (let i = 0; i < classDays; i++) {
    sheet.getRange(startRow, startCol + 1 + i).setValue(`第${i+1}天`);
  }

  // 添加学生行:表头行下插入对应数量的行
  sheet.getRange(startRow + 1, startCol, studentCount, 1).insertRowsAfter(startRow, studentCount);
  // 设置姓名列提示(可替换为实际姓名导入逻辑)
  sheet.getRange(startRow, startCol).setValue("姓名");
  for (let i = 0; i < studentCount; i++) {
    sheet.getRange(startRow + 1 + i, startCol).setValue(`学生${i+1}`);
  }

  // 可选:自动调整列宽行高
  sheet.autoResizeColumns(startCol, classDays + 1);
  sheet.autoResizeRows(startRow, studentCount + 1);
}

使用说明

  • 调整单元格位置:把代码里的A1和B1改成你实际存放上课天数、学生数量的单元格地址
  • 运行脚本:打开Google Sheets,点击「扩展程序」→「Apps脚本」,粘贴代码后保存并运行,首次运行需要完成授权
  • 自定义表头:如果需要用实际日期代替“第X天”,可修改日期列循环部分的代码,用new Date()生成对应日期格式
  • 导入学生姓名:若要从表格其他区域导入真实姓名,替换掉学生${i+1}的代码,改为读取对应单元格的值即可

注意事项

  • 运行前建议备份表格数据,避免误操作清除重要内容
  • 确保输入的上课天数和学生数量为正整数,脚本已加入基础校验,不符合要求会弹出提示
  • 如果签到表与其他数据区域重叠,需调整startCol和startRow的数值,避免影响其他数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 16:35:23