javascript
JavaScript|免费导入题库,考试复习工具,刷题神器,支持导入excel题库【完全免费+提供源码】
?
?點擊這里下載源代碼↓↓↓
基于JS的導入EXCEL題庫復習小工具_intitle:javascript搜題-Javascript文檔類資源-CSDN下載
目錄
一、工具使用說明
二、界面設計
三、邏輯控制代碼
前言
????????最新公司給了好多excel的復習題庫,讓我們去復習考試,一份份題庫看效率太低,還有點枯燥,而且記憶起來比較困難。這時就想在網上找一下有沒有免費的題庫復習軟件,支持導入excel題庫,自己自主復習。找了半天,軟件不是運行不了,就是要收費。
????????于是自己就想想能不能用JavaScript自己寫一個。隨后,自己就東拼西湊,從網上找到一些可用代碼,寫了個小工具,實現了用JavaScript讀取excel表題庫,實現自動出題復習并算分。不過由于需要用到ie瀏覽器的excel AX控件,所以只能小工具只能用使用ie內核的瀏覽器使用。
????????現將小工具分享給遇到同樣問題的朋友們,代碼寫的一般,有興趣的童鞋可以拿去改改,豐富一下功能。
? ? ? ? 點擊這里下載源代碼↓↓↓
基于JS的導入EXCEL題庫復習小工具_intitle:javascript搜題-Javascript文檔類資源-CSDN下載javascript編寫的EXCEL出題工具,工具實現了用javascript讀取EXCEL表的復習intitle:javascript搜題更多下載資源、學習資料請訪問CSDN下載頻道.https://download.csdn.net/download/qq616491978/9900582
一、工具使用說明
????????1.右鍵打開小工具,選擇使用ie瀏覽器核心的瀏覽器打開(打開后允許ActiveX控件執行)
????????2.這時小工具彈窗提示需要導入題庫,點擊【確定】后選擇題庫excel文件,然后點擊導入。
????????3.這時瀏覽器會彈出一個警告,選擇【是】,繼續允許ActiveX控件執行。
????????4.然后等待程序讀取excel,一般需要3到5秒,提示導入題庫成功后,就可以直接做題了。
????????5.做完題后,左邊統計頁面會提示答案對錯,對為綠色,錯為紅色,按提交可查看做題情況。
二、界面設計
? ? ? ? 小工具完全使用HTML+CSS+JavaScript代碼編寫,界面部分只用到了簡單的瀏覽器控件,以便提高運行的兼容性,界面的HTML+CSS代碼如下:
</head><body onload="init()"><div id='title' style="position:absolute;left:0px;top:0px;width:100%;height:50px;color:white;background:#3399FF;text-align:center"><div style="float:right;font-size:18px"><button onclick="showInfo()">關于工具</button></div><div style="float:left;font-size: 24px"> <input type="checkbox" onclick="showDaan()" style="width:20px;height:20px">顯示參考答案</div></div><div id='choosepanel' style="position:absolute;top:50px;left:0px;width:65%;height:90%;background:white;font-size:24px;font-weight: bold;color:#000077;font-family:'Arial','Microsoft YaHei','黑體','宋體';"><div id='xuhao'>序號</div><div id='leixing' style="color:red">題目類型</div><div id='tigan' style="border:solid;border-radius:5px;">題干</div><br><div><input id='radioA' type="checkbox" name='a' value='A' style="width:30px;height:30px"><label id='A'>A</label></div><div><input id='radioB' type="checkbox" name='a' value='B' style="width:30px;height:30px"><label id='B'>B</label></div><div><input id='radioC' type="checkbox" name='a' value='C' style="width:30px;height:30px"><label id='C'>C</label></div><div><input id='radioD' type="checkbox" name='a' value='D' style="width:30px;height:30px"><label id='D'>D</label></div><div id='daan' style="color:red">參考答案</div><br><div id='beizhu'>備注</div><button onclick='chooseAnswer()' style="float:right;font-size: 24px;" >確認</button></div><div id='numberpanel' style="position:absolute;top:50px;right:0px;width:34%;height:90%;border-left:thick double #3399FF;font-family:'Arial','Microsoft YaHei','黑體','宋體';"></div><div id='submitpanel' style="position:absolute;bottom:0px;left:0px;width:100%;height:10%;color:white;font-size:20px;background:#3399FF"><button id='submit' style="float:right;font-size:24px;" onclick='submit()'>提交答卷</button><button style="float:right;font-size: 24px;" onclick="load(2)">重新做題</button><input style="float:left;font-size: 24px;" type="file" id="upfile" /><button style="float:left;font-size: 24px;" onclick="ReadExcel(1)">導入題庫</button></div><div id='info' style="position:absolute;width: 300px;height: 80px;background-color: #3399FF;top:50%;left:50%;margin-left:-150px;margin-top:-100px;display: none;"><button style="position:absolute;width:50px;top:0px;right:0px;" onclick="closeInfo()" >關閉</button><a style="color: white;text-align: center; position:absolute;width: 200px;height: 20px;top:50%;left:50%;margin-left:-100px;bottom: 0px;">http://blog.csdn.net/qq616491978</a></div></body></html>三、邏輯控制代碼
? ? ? ? 為了使用方便全部JavaScript代碼寫在了一個文件中,這樣只需使用瀏覽器打開html文件即可運行,JavaScript代碼中使用了ie的AX控件讀取excel,所以只能在ie瀏覽器內核中使用,主要代碼如下:
<script type="text/javascript">var tiku = [];var tiku_number = 0;var tiku_url = "";var userchooseNumber = 1;var fenshu = new Array();var ifanswer = new Array();var answers = new Array();var ifshow = false;function init() {if (isIE()) {if (tiku_url != "" && tiku_url != null) {ReadExcel(2);load();}else{alert("還沒導入題庫,請導入題庫。");}} else {document.getElementsByTagName("body")[0].style.display = "none";alert("該程序只能在IE內核瀏覽器運行,請使用IE內核的瀏覽器打開,如果是QQ、360、百度等雙核瀏覽器請設置為IE兼容模式");}}function load() {ifshow = false;//清空數字面板數據var numberpanel = document.getElementById("numberpanel");var childs = numberpanel.childNodes;for (var i = childs.length - 1; i >= 0; i--) {numberpanel.removeChild(childs[i]);}var rows = tiku_number;for (i = 0; i < rows; i++) {fenshu[i] = 0;ifanswer[i] = 0;answers[i] = 'kong';}for (i = 1; i <= rows; i++) {var createDiv = document.createElement("div");createDiv.id = i;createDiv.className = "numberdiv";createDiv.innerHTML = i;document.getElementById("numberpanel").appendChild(createDiv);}var numberpanel = document.getElementById("numberpanel");var divs = numberpanel.getElementsByTagName("div");for (var i = 0; i < divs.length; i++) {divs[i].onclick = function (event) {var eve=event || window.event;var target =eve.target || eve.srcElement; userchooseNumber = target.id;//alert(target.id);chooseNumber(target.id);}}chooseNumber(1);showDaan();}function chooseNumber(id) {var type = tiku[id - 1].leixing;var answer = answers[id - 1];updateNumberUI(id);updateAnswerUI(answer);document.getElementById("xuhao").innerHTML = '題目:' + id;document.getElementById("leixing").innerHTML = tiku[id - 1].leixing;document.getElementById("tigan").innerHTML = tiku[id - 1].tigan;document.getElementById("A").innerHTML = 'A.' + tiku[id - 1].A;document.getElementById("B").innerHTML = 'B.' + tiku[id - 1].B;document.getElementById("C").innerHTML = 'C.' + tiku[id - 1].C;document.getElementById("D").innerHTML = 'D.' + tiku[id - 1].D;document.getElementById("daan").innerHTML = '參考答案:' + tiku[id - 1].daan;document.getElementById("beizhu").innerHTML = '備注:' + tiku[id - 1].beizhu;}function chooseAnswer() {var A = '';var B = '';var C = '';var D = '';var valueA = document.getElementById("radioA").checked;var valueB = document.getElementById("radioB").checked;var valueC = document.getElementById("radioC").checked;var valueD = document.getElementById("radioD").checked;if (valueA === true) {A = 'A';}if (valueB === true) {B = 'B';}if (valueC === true) {C = 'C';}if (valueD === true) {D = 'D';}var userchooseAnswer = A + B + C + D;var daan = tiku[userchooseNumber - 1].daan;var x = userchooseAnswer.toLowerCase();var y = daan.toLowerCase();answers[userchooseNumber - 1] = userchooseAnswer;if (x === y) {alert('回答正確');fenshu[userchooseNumber - 1] = 1;ifanswer[userchooseNumber - 1] = 1;} else {alert('回答錯誤');fenshu[userchooseNumber - 1] = 0;ifanswer[userchooseNumber - 1] = 1;}}function submit() {var x = 0,y = 0;for (var i = 0; i < tiku_number; i++) {x = x + fenshu[i];y = y + ifanswer[i];}alert('正確題數:' + x + '\n錯誤題數:' + (y - x) + '\n未作答:' + (tiku_number - y) );}function showDaan() {if (ifshow == false) {document.getElementById("daan").style.display = "none";ifshow = true;} else {document.getElementById("daan").style.display = "";ifshow = false;}}function updateNumberUI(id) {var numberpanel = document.getElementById("numberpanel");var divs = numberpanel.getElementsByTagName("div");for (var i = 0; i < divs.length; i++) {divs[i].style.background = '#F0F8FF';if (ifanswer[i] === 1) {if (fenshu[i] === 1) {divs[i].style.background = '#00FF00';} else {divs[i].style.background = 'red';}}}document.getElementById(id).style.background = 'yellow';var answer = answers[id - 1];}function updateAnswerUI(userchooseAnswer) {var choosepanel = document.getElementById("choosepanel");var inputs = choosepanel.getElementsByTagName("input");if (userchooseAnswer !== "kong") {for (var i = 0; i < inputs.length; i++) {inputs[i].checked = false;}for (var i = 0; i < userchooseAnswer.length; i++) {if (userchooseAnswer.charAt(i) === 'A') {document.getElementById("radioA").checked = true;}if (userchooseAnswer.charAt(i) === 'B') {document.getElementById("radioB").checked = true;}if (userchooseAnswer.charAt(i) === 'C') {document.getElementById("radioC").checked = true;}if (userchooseAnswer.charAt(i) === 'D') {document.getElementById("radioD").checked = true;}}for (var i = 0; i < inputs.length; i++) {inputs[i].style.color = 'white';}} else {for (var i = 0; i < inputs.length; i++) {inputs[i].checked = false;}}}function ReadExcel(type) {if (type == 1) {var tempStr = "";//得到文件路徑的值var filePath = document.getElementById("upfile").value;if(filePath!=""){//創建操作EXCEL應用程序的實例try{var oXL = new ActiveXObject("Excel.application");}catch(e){location.reload();}//打開指定路徑的excel文件var oWB = oXL.Workbooks.open(filePath);//操作第一個sheet(從一開始,而非零)oWB.worksheets(1).select();var oSheet = oWB.ActiveSheet;//使用的行數var rows = oSheet.usedrange.rows.count;tiku_number = rows - 1;tiku_url = filePath;try {for (var i = 2; i <= rows; i++) {//var a = oSheet.Cells(i, 2).value.toString() == "undefined" ? "": oSheet.Cells(i, 2).value;tiku[i - 2] = new Object();tiku[i - 2].xuhao = oSheet.Cells(i, 1).value;tiku[i - 2].leixing = oSheet.Cells(i, 2).value;tiku[i - 2].tigan = oSheet.Cells(i, 3).value;tiku[i - 2].A = oSheet.Cells(i, 4).value;tiku[i - 2].B = oSheet.Cells(i, 5).value;tiku[i - 2].C = oSheet.Cells(i, 6).value;tiku[i - 2].D = oSheet.Cells(i, 7).value;tiku[i - 2].daan = oSheet.Cells(i, 8).value;tiku[i - 2].beizhu = oSheet.Cells(i, 9).value;}} catch (e) {//document.getElementById("txtArea").value = "導入失敗";}num = rows - 1;alert("成功導入" + num + "道題");//退出操作excel的實例對象oXL.Application.Quit();//手動調用垃圾收集器CollectGarbage();load();}else{alert("未選擇導入文件,請選擇后點擊導入。");}} else if (type == 2) {var tempStr = "";//得到文件路徑的值var filePath = tiku_url;//創建操作EXCEL應用程序的實例var oXL = new ActiveXObject("Excel.application");//打開指定路徑的excel文件var oWB = oXL.Workbooks.open(filePath);//操作第一個sheet(從一開始,而非零)oWB.worksheets(1).select();var oSheet = oWB.ActiveSheet;//使用的行數var rows = oSheet.usedrange.rows.count;tiku_number = rows - 1;try {for (var i = 2; i <= rows; i++) {//var a = oSheet.Cells(i, 2).value.toString() == "undefined" ? "": oSheet.Cells(i, 2).value;tiku[i - 2] = new Object();tiku[i - 2].xuhao = oSheet.Cells(i, 1).value;tiku[i - 2].leixing = oSheet.Cells(i, 2).value;tiku[i - 2].tigan = oSheet.Cells(i, 3).value;tiku[i - 2].A = oSheet.Cells(i, 4).value;tiku[i - 2].B = oSheet.Cells(i, 5).value;tiku[i - 2].C = oSheet.Cells(i, 6).value;tiku[i - 2].D = oSheet.Cells(i, 7).value;tiku[i - 2].daan = oSheet.Cells(i, 8).value;tiku[i - 2].beizhu = oSheet.Cells(i, 9).value;}} catch (e) {//document.getElementById("txtArea").value = "導入失敗";}//document.getElementById("txtArea").value = "導入成功";num = rows - 1;alert("成功導入" + num + "道題");//退出操作excel的實例對象oXL.Application.Quit();//手動調用垃圾收集器CollectGarbage();}}function closeInfo() {document.getElementById("info").style.display = "none";}function showInfo() {document.getElementById("info").style.display = "block";}function isIE() { //ie?if (!!window.ActiveXObject || "ActiveXObject" in window)return true;elsereturn false;} </script>??點擊這里下載源代碼↓↓↓
基于JS的導入EXCEL題庫復習小工具_intitle:javascript搜題-Javascript文檔類資源-CSDN下載
總結
以上是生活随笔為你收集整理的JavaScript|免费导入题库,考试复习工具,刷题神器,支持导入excel题库【完全免费+提供源码】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 迅捷思维导图的操作方法
- 下一篇: IPv中的地域分布