google CLassRoom 可以把成績複製到試算表,但只有姓名沒有座號,無法依班級座號排列,比較麻煩,所以寫了一個google 試算表小程式來幫忙。
共用檔案:https://docs.google.com/spreadsheets/d/1iO28IzWw1N6WFA9FAopYwxktf_jfxKg10rR1U398gtY/edit?usp=sharing
建立副本,變成你自己的雲端檔案。
在左方貼上班級名條,在 C1 欄位中貼上你取得 google ClassRoom 成績檔案的網址。
再按下整理鍵。
會提醒未匹配的學生姓名及在原 ClassRoom 成績檔,已找到的,會呈現綠色底格。
按下整理鍵(只有第一次需要取得執行權限),請依下方畫面,授權--進階--選帳號--前往(不安全)--允許。
有需求者要自己修改建立者才需要看,工具--指令碼編輯器,貼入以下程式碼
function DoClassRoom_set() {
var startRow=6 ;
var classroom_col = 1 ;
var max_sect =20 ;
var max_students = 30
var realStart = 4 ;
var realNameCol = 2 ;
var not_find_List = '' ;
//目前工作表
var sheet = SpreadsheetApp.getActiveSheet();
//要讀入的 google ClassRoom 成績的網址
var classRoomScoreUrl = sheet.getRange(1,3).getValue();
var ss = SpreadsheetApp.openByUrl(classRoomScoreUrl);
var ss_sheet = ss.getSheets()[0];
//範圍清除
sheet.getRange(2,5).setValue('');
sheet.getRange(realStart-1,4,1,max_sect+1).setValue('');
sheet.getRange(realStart,3,max_students,max_sect+1).setValue('');
//取得各項成績名稱
sheet.getRange(realStart-1,4, 1, max_sect ).setValues(ss_sheet.getRange(2,5,1,max_sect).getValues()) ;
for(i=startRow ; i <= startRow + max_students ; i++ ){
//classroom姓名
var find_name = ss_sheet.getRange(i,classroom_col).getValue() + ss_sheet.getRange(i,classroom_col+1).getValue() ;
if (find_name == '') break ;
find_fg = 0 ;
//Logger.log(find_name) ;
for (j = 3 ; j <= 3 + max_students ; j ++ ){
var stud_point = sheet.getRange(j,realNameCol).getValue()
//找到在名冊位置
if (find_name == stud_point ) {
sheet.getRange(j,realNameCol+1, 1, max_sect ).setValues(ss_sheet.getRange(i,classroom_col+3,1,max_sect).getValues()) ;
find_fg = 1 ;
//classRoom 檔出現綠色代表已找到
ss_sheet.getRange(i,1).setBackground('green') ;
break ;
}
}
if (find_fg == 0 )not_find_List = not_find_List + find_name + ' , ' ;
}
sheet.getRange(2,5).setValue('ClassRoom 無法比對的:' + not_find_List) ;
}
function DoClear() {
var sheet = SpreadsheetApp.getActiveSheet();
var realStart = 4 ;
var max_sect =20 ;
var max_students = 30
//範圍清除
sheet.getRange(2,5).setValue('');
sheet.getRange(realStart-1,4,1,max_sect+1).setValue('');
sheet.getRange(realStart,3,max_students,max_sect+1).setValue('');
}