【问题标题】:Passing variables into .setValues() empties cells将变量传递到 .setValues() 会清空单元格
【发布时间】:2019-09-27 17:10:08
【问题描述】:

当从表单输入数据并使用 .setValues() 将其传递给 Google Apps 脚本函数以更新给定行的信息时,每个单元格返回空并且这些单元格内的所有数据都将被删除

我正在为客户创建一个数据库。我从输入模式中获取变量并将它们传递给 Google Apps 脚本函数。当我直接提供字符串时,我可以让它正常工作,但是在填写表格并提交时,整个单元格范围返回空。如果单元格中有数据,则将其删除。

当我将范围切换到 5 行和 1 列时,它将使用输入的正确数据进行更新。所以我觉得这可能与我传递给 Apps Script 函数的数组有关。

任何人都知道为什么当以 1 行和 5 列传递时数据不会填充单元格,而以 1 列和 5 行传递时会返回正确的数据?

//Client-side function that passes variables to Apps Script function

function updateContact() {
  let name = document.getElementById("name").value;
  let address = document.getElementById("address").value;
  let phone = document.getElementById("phone").value;
  let email = document.getElementById("email").value;
  let notes = document.getElementById("notes").value;
  google.script.run.updateContact(name, address, phone, email, notes);
}

//Google Apps Script function to Replace Values in Range

function updateContact(name, address, phone, email, notes) {
  var ss = SpreadsheetApp.openByUrl(
    "https://docs.google.com/spreadsheets/d/1ek3XVSyoxmS-ef5dgph8KKpe4fmnyHSWxLl2-uH5xyg/edit#gid=1696663263"
  );
  var sheet = ss.getSheets()[0];
  var range = sheet.getRange(2, 1, 1, 5);
  range.setValues([[name, address, phone, email, notes]]);
}

【问题讨论】:

  • 显示 5row1col 代码

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


【解决方案1】:

这对我有用:

function updateContact(one,two,three) {
  var one=one||1;
  var two=two||2;
  var three=three||3;
  var ss = SpreadsheetApp.openById('ssid');
  var sheet = ss.getSheetByName('Sheet1');
  var range = sheet.getRange(2, 1, 1, 3);
  range.setValues([[one, two, three]]);
}

【讨论】:

    猜你喜欢
    • 2020-06-12
    • 1970-01-01
    • 2019-11-08
    • 1970-01-01
    • 1970-01-01
    • 2014-01-08
    • 1970-01-01
    • 2017-07-18
    • 1970-01-01
    相关资源
    最近更新 更多