google CLassRoom 可以把成績複製到試算表,但只有姓名沒有座號,無法依班級座號排列,比較麻煩,所以寫了一個google 試算表小程式來幫忙。
共用檔案:https://docs.google.com/spreadsheets/d/1QDt-sCtCHRMgTXhPBD6Y1t_O1txEd71aWFEWJ0re4GM/edit?usp=sharing
建立副本,變成你自己的雲端檔案。
在左方貼上班級名條,右方貼上 ClassRoom 的匯出成績資料。按下整理,就會在名條後面放入 ClassRoom 成績。
由於學生的姓名可能不完整或非本名,那就無法對照得到,如果前面沒有 v 符號,得再自行比較姓名。
預設為十項成績,如果超過需要更改程式。
按下整理鍵(只有第一次需要取得執行權限),請依下方畫面,授權--進階--選帳號--前往(不安全)--允許。
有需求者要自己修改建立者才需要看,工具--指令碼編輯器,貼入以下程式碼
//整理功能
function DoClassRoom_set() {
var startRow=1 ; //開始資料行 1+1
var max_sect =10 ; //十項分數
var max_students = 30 //30個學生
var debugCol = 13 ; //找到的標記欄
var classroom_col = 14 //classroom 貼上欄
var realNameCol = 2 ; //姓名條,姓名欄
var sheet = SpreadsheetApp.getActiveSheet();
//範圍清除
sheet.getRange(2,3,max_students,max_sect+1).setValue('');
//依序取得 classroom 中的姓和名
for(i=startRow ; i <= startRow + max_students ; i++ ){
//classroom姓名
var find_name = sheet.getRange(i,classroom_col).getValue() + sheet.getRange(i,classroom_col+1).getValue() ;
if (find_name == '') break ;
//依序在姓名條中尋找
for (j = startRow ; j <= startRow + 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(sheet.getRange(i,classroom_col+4,1,max_sect).getValues()) ;
sheet.getRange(i,debugCol).setValue('v') ;
break ;
}
}
}
}
//清除功能
function DoClear() {
var sheet = SpreadsheetApp.getActiveSheet();
//範圍清除
sheet.getRange(2,1,50,50).setValue('');
}
在試算表使用插入--繪圖,加上兩個按鍵(清除、整理),滑鼠右鍵(右上直三點)指派指令碼(DoClear , DoClassRoom_set)