我有一个包含 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);
}
我收到此错误消息:“无法将(类)@7c02952c 转换为 Object[][]。”在这一行:
destSheet.getRange("C2").offset(0,0,arrDates.length).setValues(arrDates);
我也试过这个:
destSheet.getRange(1, 3, 1, 14).setValues(arrDates);
和这个:
var destRange = destSheet.getRange("C2:P2");
destRange.setValues(arrDates);
并得到同样的错误。
在调试器中,我可以看到 arrDates 按预期填充了 14 个日期。
对此错误消息的谷歌搜索没有出现任何结果。有没有人知道为什么我会收到这个错误,或者我可以做些什么来进一步排除故障?
最佳答案
https://developers.google.com/apps-script/reference/spreadsheet/range#setValues(Object)
这里的关键是,当您填充(或从中检索数据)电子表格范围时,您必须始终“设置”一个二维数组,即使范围是一行高。在 Javascript 中,这将是一个“数组数组”,其中外部数组表示行,内部数组表示每行中的单元格。
大概你的 arrDates 数组是这样的:
[日期1、日期2、日期3...]
当它需要是这样的:
[[日期1、日期2、日期3...]]
您使用 new Array(arrDates)
实现的声明,或者您也可以使用:destSheet.getRange(1, 3, 1, 14).setValues([arrDates]));
关于google-apps-script - Google 电子表格脚本错误 : "Cannot convert (class) ... to Object[][]",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15885179/