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

如何防止Google Apps Script将Google Sheets中日期、时长转为时间戳

Google Sheets 员工ID替换脚本修复方案(保留日期/时长格式)

问题根因

原脚本对所有单元格值统一执行toString()转换,而Google Sheets中的日期、时长本质是特殊格式的数值,强制转字符串后会变为完整的时间戳文本,写回表格后就会丢失原有格式,破坏值的原有类型。

修复后的完整代码

你可以直接把原有代码全部替换为下面的内容:

function runReplaceInSheet(){
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
  var values = sheet.getDataRange().getValues();   
  // 替换ID,需要新增替换规则就复制下面这行修改参数即可
  replaceInSheet(values, 'SR1193CS', 'Shyam Reganti');
  // 新增替换规则示例:replaceInSheet(values, '其他员工ID', '对应的员工姓名');
  sheet.getDataRange().setValues(values);
}

function replaceInSheet(values, to_replace, replace_with) {
  for(var row in values){
    var replaced_values = values[row].map(function(original_value) {
      // 仅当单元格值为字符串、且包含待替换的员工ID时才执行替换,日期、时长、数字等类型值直接保留
      if (typeof original_value === 'string' && original_value.includes(to_replace)) {
        return original_value.replace(to_replace, replace_with);
      } else {
        return original_value;
      }
    });
    values[row] = replaced_values;
  }
}

使用说明

  • 无需修改其他逻辑,仅需在runReplaceInSheet函数中按照注释示例增加你的替换规则即可
  • 运行时和之前操作一致,执行runReplaceInSheet函数即可,所有日期、时长、数字类单元格都会保留原有格式不会被修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:24:01