我在Stack Overflow上找不到任何相关内容。
我正在尝试将我的Google联系人群组名称和ID列表发布到F16:G。
我正在使用的代码一直说:“无法将数组转换为对象[] []。(第39行,文件”email“)”
请帮忙!我不擅长阵列!对我做错了什么的解释也很棒!
function importContactGroups() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var dataSheet = ss.getSheetByName("Load Email");
var dataRow = dataSheet.getRange("F16:F");
var groupArray = new Array();
//var groups = Browser.inputBox("Enter the name of your Gmail Contacts group here:");
//var mySheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
//var myContacts = ContactsApp.findContactGroup(groupName).getContacts();
var groups = ContactsApp.getContactGroups();
for (var i = 0; i < groups.length; i++) {
var groupNames = groupArray.push(groups[i].getName());
};
dataSheet.getRange(16, 4, groupArray.length, 5).setValues(groupArray);
// for (i=0; i < myContacts.length; i++) {
// var myContact = [[myContacts[i].getFullName(), myContacts[i].getPrimaryEmail(), "Pending"]];
//mySheet.getRange(i+2, 1,1,3).setValues(myContact);
//}
//Browser.msgBox("You have successfully imported " + myContacts.length + " contacts from Gmail. Please proceed to Step 3.");
}
答案 0 :(得分:0)
我的代码尝试了你的代码,这就是导致错误的行。
dataSheet.getRange(16, 4, groupArray.length, 5).setValues(groupArray);
首先,你不必在JS中使用这种数组:
var groupArray = new Array();
这种类型的数组可以正常工作
var groupArray = ["a","b","c"];
现在,要使用.setValues
来解决您的问题,请按照given format from the docs:
// The size of the two-dimensional array must match the size of the range.
var values = [
[ "2.000", "1,000,000", "$2.99" ]
];
因此,要修复代码,您需要为“groupArray”提供2D数组格式。这是您的代码的工作概念演示,希望您能够将它应用于您的情况:
function importContactGroups() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var dataSheet = ss.getSheetByName("Sheet1");
var dataRow = dataSheet.getRange("F16:F");
var groupArray = [
[ "apple", "banana", "orange" ,"jackfruit","kiwi" ]
];
dataSheet.getRange(1, 4, groupArray.length, 5).setValues(groupArray);
}