【发布时间】:2019-08-02 04:06:53
【问题描述】:
我从一张表中提取数据作为数组,然后将其放入另一张表中,但值的顺序需要不同。
如果源数组searchData where [1,2,3,4,5,6,7] 我需要将值pastearray 按[7,1,7,4,3,0,2,7,5] 的顺序放入第二张表中。我有三个问题,一是顺序变了,二是pastearray里面有重复的值(也就是第7个值),三是searchData里面拉出来的几个值都是null/空白,在本例中为 7s。
我正在为一个班级项目做这个。我只是在学习数组,但仍然无法完全掌握如何操作它们。我已经尝试过 1D、2D、3D 转换,至少我认为这就是我正在做的……不确定我是否正确。我已经验证除了最终的pasteRange.setValues(pastearray[0]); 之外,脚本中的所有其他内容都有效。
我的日志显示pastearray 包含:
[[null], [Language Arts 6], [null], [A/1], [6.0], [67511.0], [Layton, B], [blayton@acedu.org]]
我也试过了:
["Language Arts 6", "A/1", "6.0", "67511.0", "Layton, B", "blayton@questac.org"]
我尝试删除“空”值或将它们保留在其中。我尝试直接抓取一行值并设置它们,只要我不尝试重新排列它们就可以正常工作。
function onEdit(e){
if(e.range.getA1Notation() == 'F3' &&
e.range.getSheet().getName() == 'Class Information and Roster') {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var paste2 = ss.getSheetByName("Class Information and Roster");
var tclimport = ss.getSheetByName("TeacherClassListImport");
var classID = e.range.getValue();//Get class id value
Logger.log(classID);
paste2.getRange(6,1,31,10).clearContent();//clear all old info just in case
//access the list of all classes
var lr = tclimport.getLastRow();
var searchData = tclimport.getRange(1,1,lr,7).getValues(); //make an array of all the classes available
//Logger.log(searchData);
//Find the row with that class ID
for (var i = 0; i < searchData.length; i++) {
if(searchData[i][0]==classID){
Logger.log(i+1);
//Logger.log(searchData);
var pastearray = [[searchData[i][7]],[searchData[i][1]], [searchData[i][7]], [searchData[i][4]], [searchData[i][3]], [searchData[i][0]], [searchData[i][2]], [searchData[i][7]], [searchData[i][5]]];
Logger.log(pastearray);
//Copy in info from class ID list
var pasteRange = paste2.getRange(3,1,1,9);
pasteRange.setValues(pastearray);
}
}
}
}
我相信你会畏缩看着我的代码,因为它是如此简陋,但它按照我理解的方式工作......除了最后的setValues()。
此代码的想法是您在单元格 F3 中输入一个班级 ID 号。 OnEdit 触发脚本在工作表“TeacherClassListImport”中查找有关该班级的详细信息,复制这些值并以不同的顺序返回第 3 行中的值班级名称、时间段、级别、班级 ID、教师姓名和教师电子邮件。除非有更好的方法,否则它将用相同的类 ID 覆盖相同的单元格 F3。第 7 个是空/空白单元格。我不确定它是否必须存在,除了适当的间距以适合模板。
非常感谢任何帮助。
【问题讨论】:
标签: javascript google-apps-script