【问题标题】:Populate Google Sheet row with an array using Google Script – Incorrect range width使用 Google Script 用数组填充 Google Sheet 行 – 范围宽度不正确
【发布时间】:2018-10-07 00:49:33
【问题描述】:

我有一个非常基本的问题 - 我正在尝试使用硬编码数组填充 Google 表格中的第一个空行(然后我将使用从另一个表格中提取的数据填充它)。

我不断收到“不正确的范围宽度,是 14 但应该是 1。”

我正在尝试使用以下代码:

function populateSaleData() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var saleData = new Array()
  saleData.push(["43376","John","Product","30","Dollars","30","yes","5","card","712.5","Adam","xyz@gmail.com","US","XYZ123456"])

  var destSheet = ss.getSheetByName('Sales');
  var lastFilledRowInColumnA = getLastPopulatedRow(destSheet.getRange('A:A').getValues());
  var destRange = destSheet.getRange(lastFilledRowInColumnA+1,1);
  destRange.setValues(saleData);
};

function getLastPopulatedRow(data) {
  for (var i=data.length-1;i>=0;i--)
    for (var j=0;j<data[0].length;j++)
      if (data[i][j]) return i+1;
  return 0;
};

如果有任何帮助,我将不胜感激。

【问题讨论】:

  • 我认为问题的原因在destSheet.getRange(lastFilledRowInColumnA+1,1)。在这种情况下,二维数组的每个元素都需要为“1”。那么修改成destSheet.getRange(lastFilledRowInColumnA+1,1,saleData.length,saleData[0].length)怎么样呢?参考是here
  • 成功了,谢谢! (感谢您指导我参考)
  • 感谢您的回复。我很高兴你的问题得到了解决。您可以发布答案并接受吗?我认为这对有同样问题的用户很有用。

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


【解决方案1】:

Tanaike's comment 解决了我的问题:

我认为问题的原因在于destSheet.getRange(lastFilledRowInColumnA + 1, 1)。在这种情况下,二维数组的每个元素都需要为“1”。那么修改成destSheet.getRange(lastFilledRowInColumnA + 1, 1, saleData.length, saleData[0].length)怎么样呢?方法引用为here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    相关资源
    最近更新 更多