使用Google脚本使用数组填充Google表格行-范围宽度不正确

时间:2018-10-03 00:23:42

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

我有一个非常基本的问题–我试图用硬编码数组填充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;
};

我将非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

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

我认为问题的原因是destSheet.getRange(lastFilledRowInColumnA + 1, 1)。在这种情况下,二维数组的每个元素都必须为“ 1”。那么如何修改为destSheet.getRange(lastFilledRowInColumnA + 1, 1, saleData.length, saleData[0].length)?方法参考为here