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

Google Spreadsheet Appscript:如何复制整行数据并添加时间戳?

解决多用户在线状态批量记录问题

问题根源

你的代码只复制第一个用户数据,是因为sourceCell.getValue()仅返回选中范围的第一个单元格值,而非整行数据;同时原范围定义(3,2,2,40)是取第3、4两行的40列,不符合你只取第3行的需求。

修改后的代码

function logDataA2() {
  const ss = SpreadsheetApp.getActive();
  const sourceSheet = ss.getSheets()[0];
  // 定位第3行B列开始的40列数据(仅1行)
  const sourceRange = sourceSheet.getRange(3, 2, 1, 40);
  // 获取整行数据并转为一维数组
  const rowData = sourceRange.getValues()[0];
  const targetSheet = ss.getSheetByName('Sheet1');
  // 拼接时间戳与整行数据,追加到目标表
  targetSheet.appendRow([new Date(), ...rowData]);
}

关键改动说明

  • 将getValue()替换为getValues():后者返回整个范围的二维数组,通过[0]提取单行的一维数据
  • 调整范围参数为(3, 2, 1, 40):参数顺序是(起始行, 起始列, 行数, 列数),确保只选取第3行的40列数据
  • 使用扩展运算符...rowData:将单行数据数组展开,与时间戳组合成完整的一行数据,一次性写入目标表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 15:38:16