【问题标题】:Set raw values in Google Sheets through App Script通过 App Script 在 Google Sheets 中设置原始值
【发布时间】:2019-03-23 19:23:50
【问题描述】:

Google Sheets App Script Range.setValues 函数的行为似乎与要修改的单元格的数字格式相关:

  • 如果设置Format->Number->Automatic,它会尝试将数字字符串解析为数字。
  • 如果您设置格式->数字->纯文本,它将强制将布尔值false 转换为字符串"false"

我非常喜欢的是类似于 Google Sheets API v4 的明智行为,您可以在其中 force it to interpret values as raw.

我正在寻找的是明确的行为,其中 javascript

  • 字符串"" 保持字符串。
  • 号码1.23保持号码。
  • 布尔值true 保持布尔值。
  • 日期Date(...) 保持日期。

有谁知道这样的事情是否可行?

【问题讨论】:

  • 如果您需要原始条目 à la Sheets API,那么使用 Sheets API?它在 Apps 脚本中可用。
  • 您能详细说明一下吗?是否可以直接从与该 Sheet 关联的脚本中使用 Sheets API,而无需创建服务工作者、通过 REST 发送请求等......?
  • 谢谢!这听起来像是正确的解决方案@tehhowch。如果你把它写下来,我会很乐意接受它作为正确答案。

标签: google-apps-script google-sheets


【解决方案1】:

当您有 Format->Number->Automatic 时,有一个解决方法。

function sanitizeData(data) {
  return data.map(function(row) {
    return row.map(function(value) {
      return typeof value === 'string' ? "'" + value : value;
    });
  });
}

如果数字格式明确设置为纯文本,这将失败。但是,您可以使用clear(options) method 清除格式。

【讨论】:

  • 我对这个答案不满意,所以,如果有人有更好的想法,他/她非常受欢迎。
猜你喜欢
  • 2020-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-14
相关资源
最近更新 更多