arrays - 您如何解决 "The parameters (number[]) don' t 与 SpreadsheetApp.Range.setValues 的方法签名匹配”错误

标签 arrays google-apps-script google-sheets

我收到此错误:

"The parameters (number[]) don't match the method signature for SpreadsheetApp.Range.setValues."



当我尝试将一组值写入工作表时,在我的 Google Apps 脚本中。

下面是代码的缩短(简化)版本。实际代码运行了大约 10,000 条记录。

错误产生在最后一行,当 setValues叫做。

我知道我在这里错过了一些非常简单的东西。
function writeArrayToSheet() {

  var ss = SpreadsheetApp.openById("Spreadsheet_ID");
  var orderSheet = ss.getSheetByName("Sheet_Name");
  var vTable = orderSheet.getRange(1,6,5,11).getValues(); //Raw data 
  var vWriteTable = []; //Data that will be written to sheet
  var updateTime = new Date();
  var i = 0;
  var vSeconds = 0;


  while (i < 5 && vTable[i][0] != "") {

    //Logic section that calculated the number of seconds between

    if (vSeconds == 0) {
      vWriteTable.push("");
    } else {
      if (vTable[i][6] < certain logic) {
        vWriteTable.push("Yes");
      } else {
        vWriteTable.push("");
      }      
    }        
    i = i + 1;
  } // End while

  orderSheet.getRange(1,20,vWriteTable.length,1).setValues(vWriteTable);
} //End Function

这是什么vWriteTable调试时看起来像:

debug data

最佳答案

setValues 接受(和 getValues() 返回):

  • 1 个参数类型:
  • Object[][] 两个对象的维数组

  • 确实如此 不是 接受一维数组。范围是 总是 二维,无论范围高度或宽度 .
    如果 A1:A2 是范围,则对应的值数组将类似于:
  • [[1],[3]]

  • 同样,A1:B1 将是
  • [[1,2]]

  • A1:B2 将是
  • [[1,2],[3,4]]

  • 请注意二维如何提供方向,并且它始终是一个二维数组,即使范围的高度或宽度仅为 1。
    解决方案:
    插入一维数组使输出数组成为二维数组。
    片段:
    vWriteTable.push([""]);
    
    相关回答:
    What does the range method getValues() return and setValues() accept?

    关于arrays - 您如何解决 "The parameters (number[]) don' t 与 SpreadsheetApp.Range.setValues 的方法签名匹配”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61115863/

    相关文章:

    c - 将txt文件放入数组中从第12个元素开始

    ios - '无效更新 : invalid number of rows in section 0

    PHP - 检查值不会在数组中出现两次

    arrays - Perl:映射到列表的第一个元素

    javascript - Apps 脚本,将工作表范围转换为 Blob

    google-apps-script - 通过Google Apps脚本在Google Analytics(分析)插件中调用运行报告

    google-apps-script - 如何在谷歌表单中预填日期

    google-apps-script - Google Apps Script - 部署为 Webapp - 每次都是新版本?

    google-sheets - 如何水平旋转 googlefinance()?

    google-sheets - 谷歌表isformula()等效吗?