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

如何在目标表格设置纯文本格式?解决Google Scripts复制格式异常

解决Google Sheets复制内容时格式错乱(文本变日期)的问题

你的问题出在Google Sheets的自动格式识别机制:当使用setValues()写入数据时,表格会自动尝试识别内容格式,像1, 2这种格式会被误判为日期(1月2日)。要避免这种情况,需要先将目标区域设置为纯文本格式,再写入数据。

修改后的代码如下:

function cloneGoogleSheet2(ssA, ssB) {
  // 源文档
  var sss = SpreadsheetApp.openById('1Cd5nYV7kJ8lD6qaOqMes3Ubphlz1WdlZycL3ynyOeNY');
  // 源工作表
  var ss = sss.getSheetByName('ALTERAÇÕES');
  // 获取源数据范围
  var SRange = ss.getDataRange();
  var A1Range = SRange.getA1Notation();
  var SData = SRange.getValues();

  // 目标文档
  var tss = SpreadsheetApp.openById('1Cd5nYV7kJ8lD6qaOqMes3Ubphlz1WdlZycL3ynyOeNY');
  // 目标工作表
  var ts = tss.getSheetByName('FORMULÁRIO');

  // 清空目标工作表内容
  ts.clear({ contentsOnly: true });

  // 关键步骤:先将目标区域设置为纯文本格式
  var targetRange = ts.getRange(A1Range);
  targetRange.setNumberFormat('@');

  // 写入源数据
  targetRange.setValues(SData);
}

核心修改说明

  • setNumberFormat('@'):@是Google Sheets中代表纯文本的格式代码,执行这一步后,目标区域的所有单元格都会强制以纯文本形式存储内容,不会自动转换格式。
  • 必须先设置格式,再写入数据:如果先写数据再改格式,已经被转换的日期无法还原为原始文本,先设格式能从根源避免自动转换问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 01:54:24