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

将Google Sheets数据复制到另一工作簿:日期公式转静态文本

解决Google Sheets脚本复制日期格式为静态文本的问题

你的问题出在getValues()方法上——它会读取单元格的原始数据值,而非显示出来的格式化文本。要保留TEXT公式生成的日期格式,只需将获取数据的方法替换为getDisplayValues(),这个方法会直接读取单元格当前显示的文本内容。

修改后的完整代码如下:

var sourceSpreadsheetID = "ID1";
var sourceWorksheetName = "Overview";
var targetSpreadsheetID = "ID2";
var targetWorksheetName = "Overview Static";
function importData() {
  
  var thisSpreadsheet = SpreadsheetApp.openById(sourceSpreadsheetID);
  var thisWorksheet = thisSpreadsheet.getSheetByName(sourceWorksheetName);
  var thisData = thisWorksheet.getDataRange();
  //Uncomment line 11 below and comment out line 9 if you want to sync a named range. Replace "teamBugs" with your named range.
  //var thisData = thisSpreadsheet.getRangeByName("data");
 
  var toSpreadsheet = SpreadsheetApp.openById(targetSpreadsheetID);
  var toWorksheet = toSpreadsheet.getSheetByName(targetWorksheetName);
  var toRange = toWorksheet.getRange(1, 1, thisData.getNumRows(), thisData.getNumColumns())
  // 获取单元格显示的格式化文本,而非原始值
  toRange.setValues(thisData.getDisplayValues()); 
}

关键修改说明

  • 替换thisData.getValues()为thisData.getDisplayValues():前者返回单元格的原始数据(比如日期对应的序列号或未格式化的数值),后者返回用户看到的格式化文本,完美匹配你需要的01/01/2020 11:20 AM格式。
  • 无需额外处理公式列,源表中TEXT公式生成的格式会直接被复制为静态文本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 05:30:49