与简单的Google脚本和Google电子表格发行



更新2:这是一个权限问题。我想我必须为每个电子表格复制所有脚本吗?我现在已经修复了代码了。

更新:我的代码错误(我认为我认为第二个循环(,但我的问题是为什么脚本在我的床单上不运行。

我正在尝试将数据写入电子表格中的列。也许我只是遇到许可问题?

这是我第一次使用Google脚本,我也不熟悉JavaScript。我有一个带有大量数据的电子表格,我成功地删除了通过比较前两列来定义的重复项 - 没有错误,没有问题,成功地尝试了。现在,我正在尝试填写两个新的空列的数据。

如果第2列的格式为" foo -bar",我希望第3列为" foo"和col 4" bar"。所以我写了这个脚本:

function parseTypes() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var newData = new Array();
  for (i in data) {
    var row = data[i];
    var str = row[2];
    var strSplit = str.split(" - ");
    row[3] = strSplit[0];
    if (strSplit[1] == "" || strSplit[1] == null || row[4] == undefined) {
      row[4] = "";
    } else {
      row[4] = strSplit[1];
    }
    newData.push(row);
  }
  sheet.clearContents();
  sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);
}

i进行了调试,字符串阵列strsplit精确设置为" foo,bar"。我的问题是,它实际上并没有将数据写入我的电子表格。我不知道这是我的代码,还是我只是在错误地运行脚本,因为我几乎不知道自己在做什么。

JavaScript使用0基于0的索引,但电子表格使用1个基于1个索引。这意味着行[2]返回C列的值,而不是列b。

您不必复制脚本。您唯一需要更改的是不使用电子表格。这样,您就不必复制它。希望这会有所帮助。

最新更新