Google apps script 例外:数据中的列数与范围中的列数不匹配,尽管范围是从数据创建的

Google apps script 例外:数据中的列数与范围中的列数不匹配,尽管范围是从数据创建的,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正试图找出我在这个谷歌脚本中遗漏了什么。我一直在犯错误 例外:数据中的列数与范围中的列数不匹配。数据为0,但范围为15 但这对我来说毫无意义 下面是一些有问题的代码: var range = ReleaseSchedule.getRange(1,1,output_data_sheet.length,output_data_sheet[0].length); range.setValues(output_data_sheet); ReleaseSchedule是活动电子表格输出中的新工作表\u

我正试图找出我在这个谷歌脚本中遗漏了什么。我一直在犯错误

例外:数据中的列数与范围中的列数不匹配。数据为0,但范围为15

但这对我来说毫无意义

下面是一些有问题的代码:

var range = ReleaseSchedule.getRange(1,1,output_data_sheet.length,output_data_sheet[0].length);
range.setValues(output_data_sheet);

ReleaseSchedule是活动电子表格输出中的新工作表\u数据\u工作表是二维数组。我之前在脚本中也有类似的代码,但由于某种原因,这个代码会引发异常,我不知道为什么。任何帮助或想法都将不胜感激。

我认为此错误的原因是
异常:数据中的列数与范围中的列数不匹配。数据为0,但范围为15。
可能如下所示

  • 输出数据表是二维数组
  • 输出数据表的第一个索引的数组长度为
    15
  • 除第一个索引外,索引中包括空数组(数组长度为
    0
当上述
输出数据表
用于
setValues()
时,可能会发生此类错误。为了消除此问题,如何进行以下修改?在这里,我想提出两种模式

模式1: 在此模式中,空元素将从
输出数据表中删除

发件人: 致: 致:
output_data_sheet=output_data_sheet.map(r=>r.length==15?r:r.concat(数组(15-r.length).fill(“”));//我为你的情况提出了2个修改脚本。但我不确定你的整个剧本。所以,如果我对你情况的猜测不正确,我道歉。届时,您能否提供复制您的问题的整个脚本?通过这一点,我想确认一下。您确定输出数据表数据具有相同的列数,甚至是第一行吗?最好使用调试器
Logger.log(output\u data\u sheet.length,output\u data\u sheet[0].length)
来检查这些值是否与您期望的值一致。您能否提供与检索
output\u data\u sheet
相关的脚本?
var range = ReleaseSchedule.getRange(1,1,output_data_sheet.length,output_data_sheet[0].length);
range.setValues(output_data_sheet);
output_data_sheet = output_data_sheet.filter(String);  // <--- Added
var range = ReleaseSchedule.getRange(1,1,output_data_sheet.length,output_data_sheet[0].length);
range.setValues(output_data_sheet);
var range = ReleaseSchedule.getRange(1,1,output_data_sheet.length,output_data_sheet[0].length);
range.setValues(output_data_sheet);
output_data_sheet = output_data_sheet.map(r => r.length == 15 ? r : r.concat(Array(15 - r.length).fill("")));  // <--- Added
var range = ReleaseSchedule.getRange(1,1,output_data_sheet.length,output_data_sheet[0].length);
range.setValues(output_data_sheet);