javascript - 简单的 Google 脚本和 Google 电子表格的问题

标签 javascript google-apps-script google-sheets

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

更新:我的代码是错误的(我认为我需要删除第二个 for 循环)但我的问题是为什么脚本没有在我的工作表上运行。

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

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

如果第 2 列的格式为“foo - bar”,我希望第 3 列为“foo”,第 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);
}

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

最佳答案

JavaScript 使用基于 0 的索引,而 SpreadsheetApp 使用基于 1 的索引。这意味着行 [2] 返回 C 列而不是 B 列的值。

关于javascript - 简单的 Google 脚本和 Google 电子表格的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48980104/

相关文章:

javascript - 跨 Node.js 模块共享下划线 mixins

javascript - 从 url 获取第一个和最后一个文件夹

javascript - 在 Google Apps 脚本中获取 NWS API 500 错误

google-apps-script - 在给定范围内应用公式的最快方法

php - XMLHttpRequest 将变量传递给 php 脚本

javascript - 如果 ajax 失败,Dropzone.js 重试

google-apps-script - Google Sheet/Google Script - 在图片上绘制点

google-apps-script - 有多少个回调元素?

google-apps-script - 如何计算特定字符串和颜色?

google-sheets - 如何在 Google 表格中为时间添加持续时间?