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

请求修改Apps Script:导入CSV时自动添加时间戳至指定单元格

解决CSV导入时自动添加时间戳的问题

原onEdit触发器是简单触发器,只能响应手动编辑单元格的操作,无法捕获你遇到的两种场景:

  • 通过「文件>导入>替换当前工作表」的CSV批量导入操作
  • TIMESTAMP工作表A2单元格因关联单元格变化而自动更新的公式计算场景

解决方案:使用安装型onChange触发器

onChange属于安装型触发器,能捕获更多类型的表格变更事件,包括批量数据导入、公式值更新等,完全适配你的需求。

替换后的代码

function recordImportTimestamp(e) {
  // 只处理单元格内容变更类事件
  if (e.changeType !== 'EDIT') return;

  const spreadsheet = e.source;
  
  // 核心逻辑:检测到IMPORT FMS工作表有变更(CSV导入会直接修改此表),就写入时间戳
  if (spreadsheet.getActiveSheet().getName() === 'IMPORT FMS') {
    const timestampSheet = spreadsheet.getSheetByName('TIMESTAMP');
    timestampSheet.getRange('B2').setValue(new Date());
    return;
  }

  // 备选逻辑:针对TIMESTAMP工作表A2的公式更新(作为兜底)
  const timestampSheet = spreadsheet.getSheetByName('TIMESTAMP');
  if (spreadsheet.getActiveSheet().getName() === 'TIMESTAMP' && e.range.getA1Notation() === 'A2') {
    timestampSheet.getRange('B2').setValue(new Date());
  }
}

安装触发器步骤

  1. 打开表格的脚本编辑器(点击「扩展程序>Apps脚本」)
  2. 删除原有的onEdit函数,粘贴上面的代码
  3. 点击左侧的「触发器」图标(闹钟形状)
  4. 点击「添加触发器」,按以下配置:
    • 要运行的函数:recordImportTimestamp
    • 部署类型:头部部署
    • 事件来源:从电子表格
    • 事件类型:更改
  5. 点击「保存」,按照提示完成脚本授权即可

注意事项

  • 优先依靠「检测IMPORT FMS工作表变更」的逻辑,CSV导入会直接修改该表,触发更稳定
  • 如果IMPORT FMS有其他手动编辑操作,也会触发时间戳记录,若需要仅限制CSV导入场景,可结合变更范围的单元格数量判断(但CSV导入的范围不固定,通常接受所有IMPORT FMS的变更都记录时间戳)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 02:13:20