由于标准导出文件很糟糕,我想将我的Google联系人与他们的群组导出到Google电子表格中。我的数据集并不过多(32个组和600个联系人)。我究竟做错了什么?如何限制指令数量,以便不再出现此错误?
function GetGroups() {
var ss=SpreadsheetApp.getActiveSpreadsheet();
var blad6=ss.getSheets()[6];
var vId;
var vGroep;
var lijn5=2;
var contact = ContactsApp.getContacts();
blad6.clearContents();
blad6.getRange("A1").setValue("Naam");
blad6.getRange("B1").setValue("Groep");
blad6.getRange("C1").setValue("ID");
for (var i=0;i<contact.length;i++) {
sleep(500);
vId=contact[i].getId();
vGroep=contact[i].getContactGroups();
for (var j=0;j<vGroep.length;j++) {
blad6.getRange("A" + (lijn5)).setValue(contact[i].getFullName());
blad6.getRange("B" + (lijn5)).setValue(vGroep[j].getName());
blad6.getRange("C" + (lijn5)).setValue(vId);
lijn5++;
}
}
}
谢谢,这解决了大部分问题。但是,我仍然在本节中收到Over Quota错误。怎么会?我正在构建一个数组,正如你所说的那样
function HaalGroepenOp() {
var ss=SpreadsheetApp.getActiveSpreadsheet();
var blad6=ss.getSheets()[6];
var resultaat=new Array();
var vId;
var vGroep;
var lijn=1;
var contact = ContactsApp.getContacts();
blad6.clearContents();
resultaat[0]=[["Naam"],["Groep"],["ID"]];
for (var i=0;i<contact.length;i++) {
vId=contact[i].getId();
vGroep=contact[i].getContactGroups();
for (var j=0;j<vGroep.length;j++) {
resultaat[lijn]=[[contact[i].getFullName()],[vGroep[j].getName()],[vId]];
lijn++;
}
}
blad6.getRange(1,1,lijn,3).setValues(resultaat);
}
答案 0 :(得分:3)
对于每个单独的项目,您使用setValue拨打过多的电子表格。
您应该构建数组,然后使用setValues()将数组分配给电子表格。
blad6.getRange("A1").setValue("Naam");
blad6.getRange("B1").setValue("Groep");
blad6.getRange("C1").setValue("ID");
应该是:
blad6.getRange("A1:C1").setValues([["Naam","Groep","ID"]]);
同样,您应该使用循环构建数组,然后使用setValues()
将数组分配到电子表格中。