這是我的第一個問題。據我所知,我已經搜索了該網站,但還沒有發現任何其他我的問題的例子。谷歌腳本:打印每個老師的學校時間表數據
下面是谷歌試算表檔案 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