【问题标题】:Google Sheet Script Editor - setValues for arrayGoogle Sheet Script Editor - 数组的 setValues
【发布时间】:2019-08-27 19:00:33
【问题描述】:

我正在尝试使用 Google 工作表脚本中的 setValues 将旧值替换为新值。

数据在下面的链接中...

https://docs.google.com/spreadsheets/d/1pSUVkxM9FhSNgizedHbY2MnYGTnC2iiYLfrWsoPmDks/edit?usp=sharing

我基本上是在尝试删除“跟踪器”列下的前 14 个字符和后 12 个字符

下面是我试过的代码..

function URLReplacement() {
  var ss =  SpreadsheetApp.getActive().getSheetByName("transformer");
  var rng = ss.getRange("G:G");
  var data = rng.getValues();
  for (var items in data)
  {
    var newer = data[items][0].substring(14)
    // Turn these strings into an array
    var newerr = newer.split(" ")
    // Turn this into 2 dimensional array to use setValues

    ss.getRange("G:G").setValues([newerr])

  Logger.log([newer]);
}
}

但是现在,setValues 语句出现错误 说我在那里设置的范围与数据不匹配

我在这里做错什么了..?

谁能给我一些建议/建议?

【问题讨论】:

    标签: javascript google-apps-script google-sheets


    【解决方案1】:
    • 您想在“G”列从IMAGE_SUFFIX_"http://google.com"<xxxnouse>" 转换为http://google.com
    • IMAGE_SUFFIX_"http://google.com"<xxxnouse>" 的格式是不变的。

    如果我的理解是正确的,那么这个修改呢?您的错误原因是[newer] 不是使用setValues() 的二维数组。如果删除了此错误,则会通过覆盖空值来删除标头。所以我想修改如下。

    修改点:

    • 当使用getLastRow() 时,它检索到的数据量可以比“G:G”检索到的数据量减少。这样可以降低工艺成本。
    • getRange(2, 7, ss.getLastRow(), 1) 未检索到标头。
    • IMAGE_SUFFIX_"http://google.com"<xxxnouse>"的格式,split()用于解析这个值。
    • 转换后的数据由setValues()放。这样一来,工艺成本也可以降低。

    修改脚本:

    function URLReplacement() {
      var ss =  SpreadsheetApp.getActive().getSheetByName("transformer");
      var rng = ss.getRange(2, 7, ss.getLastRow(), 1); // Modified
      var data = rng.getValues();
      var convertedData = data.map(function(e) {return e[0] ? [e[0].split('"')[1]] : e}); // Added
      rng.setValues(convertedData); // Added
    }
    

    注意:

    • 在您的共享示例电子表格中,工作表名称为“Sheet1”。但是您的脚本使用“transformer”作为工作表名称。请注意这一点。
    • 如果电子表格中实际值的格式与共享电子表格不同,则可能无法使用。

    参考资料:

    如果这不是您想要的结果,我深表歉意。

    【讨论】:

    • 嘿 Tanaike,这正是我想要的。为表名道歉!完全忘记了这一点.. 非常感谢!!!!!!
    • @Jason1993 感谢您的回复。很高兴您的问题得到解决。
    • 是的,再次感谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多