新營學習網
:::
社團報名
線上書籍
電腦作業繳交
連結網站
Scratch 網站
宜蘭scratch 網站
南市scratch競賽平台
全民資安素養自我評量
學校主站
登入
使用 臺南市 OpenID 快速登入
:::
所有書籍
「prolin 筆記」目錄
MarkDown
8-4 常用映像檔
1. 雜記
1-1 雜記
1-2 打包批次檔
1-3 chrome 擴充--沈浸式翻譯
1-4 AI 相關
2. scratch 3 to html
3. 程式編輯工具
3-1 Visual Studio Code
3-2 Atom 程式編輯工具
3-3 google web designer
4. GIT 版本控制筆記
4-1 基礎
4-2 分支管理
4-3 下載遠端分支工作
4-4 回復
4-5 狀況處理
4-6 fork 針對別的程式做分支,提供貢獻
4-7 參考資料
5. H5P 製作HTML5互動內容
6. PixiJS Html5 Game engine
7. Onyx boox note2 筆記
7-1 kindle 書籍匯出
7-2 使用 Fontforge script 製作簡轉繁字體
7-3 小米多看電紙書灌第三方app的方法
7-4 google play 圖書下載
8. Docker
8-1 安裝
8-2 使用映像檔
8-3 使用方式
8-4 常用映像檔
9. google app script
9-1 使用csv 試題製作 google 測驗表單(單選)
9-2 google ClassRoom成績依班級名條整理
9-3 列出雲端目錄下的所有檔案
9-4 web app
10. appsheet
10-1 基本功能介紹
10-2 進階功能
11. App inventor 2
11-1 ListView
11-2 常用
12. 魔術方塊
13. OpenWrt (aerohive ap 121)
9-2 google ClassRoom成績依班級名條整理
prolin 筆記 ========= ### 程式修改自:[題庫批次匯入google表單](http://n.sfs.tw/content/index/14616) ### 一、取得試算表副本,並存放到自己的雲端空間。 (亂序版)檔案位置:[https://docs.google.com/spreadsheets/d/17H9qGlBGif7IKfqRxJZXY8w5hBULLiiy40d\_it6k5k8/edit?usp=sharing](https://docs.google.com/spreadsheets/d/17H9qGlBGif7IKfqRxJZXY8w5hBULLiiy40d_it6k5k8/edit?usp=sharing) 2021/6/28 第一版 2021/6/29 增加**亂序題份數**可產多份不同順序的考卷(0表示依原題號順序)、**答案亂序**(0表示依原答案順序) ![](https://stud.syps.tn.edu.tw/uploads/tad_book3/image/google_classroom/csv2form01.png) ![](https://stud.syps.tn.edu.tw/uploads/tad_book3/image/google_classroom/csv2form02.png) ### 二、由內容中製作考試表單 修改參數及貼入 CSV 題目,修改測驗名稱、題數、每題分數、最多選擇數,並貼上你有題庫光碟中取得的 CVS 檔案內容,最後按下<製作測驗表單>鍵(
第一次使用要取得授權,說明在下方
)。 ![](https://stud.syps.tn.edu.tw/uploads/tad_book3/image/google_classroom/csv2form08.png) ### 三、細部設定考試表單 在你的雲端硬碟中主目錄會產生一個和測驗名稱相同的檔案。 ![](https://stud.syps.tn.edu.tw/uploads/tad_book3/image/google_classroom/csv2form09.png) 連點開啟,可以再修改題目內容等。 ![](https://stud.syps.tn.edu.tw/uploads/tad_book3/image/google_classroom/csv2form10.png) 在右上方設定圖示,可以再設定是否一定要登入google 帳號、回答次數、是否出現正確答案及得分等。 ![](https://stud.syps.tn.edu.tw/uploads/tad_book3/image/google_classroom/csv2form11.png) ### 提供授權 ![](https://stud.syps.tn.edu.tw/uploads/tad_book3/image/google_classroom/csv2form03.png) ![](https://stud.syps.tn.edu.tw/uploads/tad_book3/image/google_classroom/csv2form04.png) ![](https://stud.syps.tn.edu.tw/uploads/tad_book3/image/google_classroom/csv2form05.png) ![](https://stud.syps.tn.edu.tw/uploads/tad_book3/image/google_classroom/csv2form06.png) ![](https://stud.syps.tn.edu.tw/uploads/tad_book3/image/google_classroom/csv2form07.png) 程式 ```c function main() { //version 20210529 //let url = 'google試算表網址'; //試算表網址 var startRow = 7 ; let sheet = SpreadsheetApp.getActiveSheet(); let isAllRequired = true; //是否每題都要作答 true, false exam_name = sheet.getRange(1,2).getValue(); //測驗卷名稱 let questionSize = sheet.getRange(2,2).getValue(); //匯入題目數 let scores = sheet.getRange(3,2).getValue(); //每題配分 let optionsSize = sheet.getRange(4,2).getValue(); //題目選項數, 4個表示2,3,4個選項都會計數到 ///以下不用編輯/////////////////////////////////////////////////////////////////////// let exam = {}; //exam.url = url; exam.scores = scores; exam.size = questionSize; exam.rand_oder = sheet.getSheetValues(2, 4, 1, 1); //題目順序隨機出幾份 0 表示按原順序。 exam.rand_ans = sheet.getSheetValues(3, 4, 1, 1); //答案順序是否要隨機 0 表示按原答案 //取得試題 let getSheet = function (exam) { let questions = []; exam.name = exam_name ; for (let i = 0; i < exam.size ; i++) { question = {}; if (!sheet.getRange(startRow+i , 1).isBlank()) { //題目 question.description = sheet.getSheetValues(startRow+i, 1, 1, 1); //正確答案 question.answer = sheet.getSheetValues(startRow+i, 2, 1, 1); let index = 1; let options = []; let startColumn = 3 //選項, 第三欄位到第七欄位, for (let j = startColumn; j < startColumn + optionsSize; j++) { if (!sheet.getRange( startRow+i, j).isBlank()) { let option = {}; option.description = sheet.getSheetValues(startRow+i, j, 1, 1); option.value = parseInt(question.answer) === index ? true : false; options.push(option); } index += 1; } question.options = options; questions.push(question); } } exam.questions = questions; return exam; } //出考卷 let doExam = function (exam , ran_num ) { exam.name_copy = exam.name ; if (ran_num > 0) exam.name_copy = exam.name + "亂序_" + ran_num ; let form = FormApp.create(exam.name_copy); form.setIsQuiz(true); let userinfo = form.addTextItem(); userinfo.setTitle('請輸入您的班級座號,例如六甲一號:60101'); userinfo.setRequired(true); let userName = form.addTextItem(); userName.setTitle('請輸入您的姓名:'); userName.setRequired(true); //題號順序改變 if (ran_num > 0 ) questions = shuffleArray(exam.questions); else questions = exam.questions; for (let i = 0; i < questions.length; i++) { //選擇題 let item = form.addMultipleChoiceItem(); item.setPoints(exam.scores); item.setTitle(questions[i].description); //答案亂序 if (exam.rand_ans > 0){ options = shuffleArray(questions[i].options) ; }else { options = questions[i].options; } let choices = []; for (let j = 0; j < options.length; j++) { choices.push(item.createChoice(options[j].description, options[j].value)) } item.setChoices(choices); item.setRequired(isAllRequired); } Logger.log("done."); } //陣列亂數 function shuffleArray(array) { var i, j, temp; for (i = array.length - 1; i > 0; i--) { j = Math.floor(Math.random() * (i + 1)); temp = array[i]; array[i] = array[j]; array[j] = temp; } return array; } exam = getSheet(exam) //亂序的份數 for (ran_num = 0 ; ran_num <= exam.rand_oder ; ran_num ++) { doExam(exam , ran_num ); } Browser.msgBox( exam.name + " 制作完成!") ; } ```
Google網站翻譯工具列
站內搜尋
search
進階搜尋