Google Spreadsheet脚本错误:"无法转换(类)...到对象[] []"

brl*_*rl8 6 google-sheets google-apps-script

我有一个13维日期的维度数组,我想把它放在电子表格行中.

当我调试这段代码时:

if (arrDates.length > 0) {
    var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
    var destSheet = spreadsheet.getSheetByName("Employee Capacity Detail");
    destSheet.getRange("C2").offset(0,0,arrDates.length).setValues(arrDates);
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息:"无法转换(类)@ 7c02952c到Object [] []." 在这条线上:

destSheet.getRange("C2").offset(0,0,arrDates.length).setValues(arrDates);
Run Code Online (Sandbox Code Playgroud)

我也试过这个:

destSheet.getRange(1, 3, 1, 14).setValues(arrDates);
Run Code Online (Sandbox Code Playgroud)

还有这个:

var destRange = destSheet.getRange("C2:P2");
destRange.setValues(arrDates);
Run Code Online (Sandbox Code Playgroud)

并得到相同的错误.

在调试器中,我可以看到arrDates按预期填充了14个日期.

谷歌搜索此错误消息没有出现任何问题.有没有人对我收到此错误的原因有什么想法,或者我可能会做些什么来进一步排除故障?

Ada*_*amL 16

https://developers.google.com/apps-script/reference/spreadsheet/range#setValues(Object)

这里的关键是,当您在电子表格范围中填充(或从中检索数据)时,您必须始终"设置"二维数组,即使范围是一行高.在Javascript中,这将是"数组数组",其中外部数组表示行,内部数组表示每行中的单元格.

大概你的arrDates数组是这样的:

[date1,date2,date3 ...]

什么时候需要像这样:

[[date1,date2,date3 ...]]

您使用该new Array(arrDates)语句实现的,或者您也可以使用:

destSheet.getRange(1, 3, 1, 14).setValues([arrDates]));