这是我的第一个问题。据我所知,我已经搜索了该网站,但还没有发现任何其他我的问题的例子。谷歌脚本:打印每个老师的学校时间表数据
下面是谷歌试算表档案 https://docs.google.com/spreadsheets/d/1HxyhoxuPK8H8_vhLg0ZZ-THyOn1cn9nPYRyls8y47iM/edit?usp=sharing
我有同样的谷歌表文档中的2张。 第一个“模式”包含一个老师的基本学校时间表,在不同的块中有不同的班级。这需要被复制,以便所有教师都有这个确切的设置 - 以便所有唯一用户具有相同的50行日程安排数据 - 仅限于其分配的类。
第二片包含有关用户的信息。例如,每行包含一个UNI登录用户名和他们为用户uni12345指定的类1a-1,4a-1和8a-1。在“uni12345”的日程表数据中,1a-1需要替换1。
我想组合成一个片,FX所有这些数据(大量的行)。所谓的“组合拳” - 但你得到你挑上的名字:-)
我已经做了,将实施例表,呈现我多么想对列表中的用户1 + 2的输出。
如果问题已经被部分在其他地方回答,我会很乐意看也!
编辑: 由于我原来的问题,我已经使它的工作 - 只有现在我打6分钟脚本执行时间限制。任何方式,例如。优化?
function merge() {
var CurrentDate = new Date() ;
var CurrentDateString1 = Utilities.formatDate(CurrentDate, "GMT", "MM-dd-yyyy HH:mm:ss") ;
var ss=SpreadsheetApp.getActive();
// var mergeSht=ss.getSheetByName(CurrentDateString1);
var users=ss.getSheetByName('users');
var schema=ss.getSheetByName('schema');
var mergeSht = ss.insertSheet();
mergeSht.setName(CurrentDateString1);
var usersValues = users.getDataRange().getValues();
var schemaValues = schema.getDataRange().getValues();
var counter = 1;
for(var n=1; n < usersValues.length ; n++){
var usersValue = usersValues[n];
var uniName = usersValue[5];
var levelInd = usersValue[2];
var levelMellem = usersValue[3];
var levelUdsk = usersValue[4];
// Logger.log(usersValues[n][5])
for(var i=1; i < schemaValues.length ; i++){
var schemaValue = schemaValues[i];
if (schemaValue != null && schemaValue.length > 0) {
var level = schemaValue[3];
var subject = schemaValue[4];
var room = schemaValue[5];
var day = schemaValue[6];
var position = schemaValue[7];
var levelAfd = getlevel(level,levelInd, levelMellem, levelUdsk);
Logger.log(levelAfd);
// print
var row=[];
row.push(counter++,'','unilogin:'+ uniName, levelAfd, subject, room, day, position);
mergeSht.appendRow(row);
}
}
}
}
function getlevel(level, levelInd, levelMellem, levelUdsk){
switch (level)
{
case 1:
return levelInd;
case 4:
return levelMellem;
case 7:
return levelUdsk;
}
}
你尝试过什么? [问] – Cooper
我已经将我的新解决方案添加到该问题中;直到现在,我正在Google脚本上执行最多6分钟的执行时间。 –
执行记录是什么样的? – Cooper