Javascript Google应用程序脚本中2D数组大小出现异常错误
例外情况是: 数据中的列数与范围中的列数不匹配。数据为0,但范围为3 我想用三列和线程的长度填充一个google电子表格。当我调试程序时,数组是空的。是否应该使用其他方法来创建可与getrange一起使用的2D数组Javascript Google应用程序脚本中2D数组大小出现异常错误,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,例外情况是: 数据中的列数与范围中的列数不匹配。数据为0,但范围为3 我想用三列和线程的长度填充一个google电子表格。当我调试程序时,数组是空的。是否应该使用其他方法来创建可与getrange一起使用的2D数组 function TheaThreads(){ var SS =SpreadsheetApp.getActiveSpreadsheet(); var ThreadSheet = SS.getSheetByName("Threads"); var thread
function TheaThreads(){
var SS =SpreadsheetApp.getActiveSpreadsheet();
var ThreadSheet = SS.getSheetByName("Threads");
var threads = GmailApp.getInboxThreads();
var csNames = new Array();
for (var i=0; i < threads.length; i++) {
for (var j = 0; j <
threads[i].getMessages().length; j++){
var message = threads[i].getMessages()[j],
label = threads[i].getLabels(),
ident = message.getId(),
emailfrom = message.getFrom();
//remove the name that comes with the email and pops the > at the end and store into str
var str = emailfrom.split("<").pop();
str=str.replace(">",'');
// Label empty labels with "No Label"
if(label==null|| label== undefined||
label.length==0){
label="No Label";
}
}
//Push the ID, Label and FromEmail into 2D array
csNames[j] = new Array();
csNames[j][0]= ident;
csNames[j][1]= label;
csNames[j][2]=str;
Logger.log(csNames[j]);
ThreadSheet.getRange(2, 1, csNames.length,
csNames[j].length).setValues(csNames);
函数线程(){
var SS=SpreadsheetApp.getActiveSpreadsheet();
var ThreadSheet=SS.getSheetByName(“Threads”);
var threads=GmailApp.getInboxThreads();
var csNames=新数组();
对于(var i=0;i并存储到str中
var str=emailfrom.split(“,”);
//用“无标签”标记空标签
if(label==null | | label==undefined | |
label.length==0){
label=“无标签”;
}
}
//将ID、标签和FromEmail推送到2D数组中
csNames[j]=新数组();
csNames[j][0]=ident;
csNames[j][1]=标签;
csNames[j][2]=str;
Logger.log(csNames[j]);
ThreadSheet.getRange(2,1,csNames.length,
csNames[j].length).setValues(csNames);
这是为我运行的:
function TheaThreads() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName("Sheet1");//changed
var threads = GmailApp.getInboxThreads();
var csNames = [['id','label','from']];//changed
for (var i = 0; i < threads.length; i++) {
for (var j = 0; j < threads[i].getMessages().length; j++) {
var message = threads[i].getMessages()[j],
label = threads[i].getLabels().map(l=>{return l.getName()}).join(','),
ident = message.getId(),
emailfrom = message.getFrom();//changed
var str = emailfrom.split("<").pop();
str = str.replace(">", '');
if (label == null || label == undefined ||
label.length == 0) {
label = "No Label";
}
}
csNames.push([ident,label,str]);
}
sh.getRange(1, 1, csNames.length, csNames[0].length).setValues(csNames);//moved
}
函数线程(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sh=ss.getSheetByName(“Sheet1”);//已更改
var threads=GmailApp.getInboxThreads();
var csNames=[['id','label','from']];//已更改
对于(var i=0;i{return l.getName()}).join(','),
ident=message.getId(),
emailfrom=message.getFrom();//已更改
var str=emailfrom.split(“,”);
如果(标签==null | |标签==未定义||
label.length==0){
label=“无标签”;
}
}
csNames.push([ident,label,str]);
}
sh.getRange(1,1,csNames.length,csNames[0].length).setValues(csNames);//已移动
}
我将其从for循环中取出,并在csNames[j].length中得到了相同的错误,在csNames[0].length中出现了“无法读取未定义的属性'length'的错误”。请再次查看。我添加了一些代码到标签,因为它返回了Gmillabel数组