需求:
很多個微信群,群中進行接龍,填寫個人姓名及英文名稱。原始數據格式如下:
#接龍
為了雙師課堂的有效進行,現需要統計學生的英文名字,如下
1. 一2班+中文名+英文名
2. 一2班+孟詩達+King
3. 一2班+湯博源+Peter
4. 一2班+鄧冠涵+Tracy
5. 一2班 胡思沁 Elsa
6. 一2班+陳烯琪+Crystal
7. 一2班+丁梓鳴+Apple
8. 一2班郭兆藝+George
9. 一2班 馮語鑠 Steven
因為有很多個班,要將這些數據匯總並導出到excel中,於是花了半個小時來寫了個小工具來解析數據,導出csv文件,效果如下:
用excel打開的效果如下:
附上源代碼如下:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=1380"> </head> <body> <textarea id="content" rows="50" cols="100" placeholder="把微信里的接龍信息全部復制到這個框里,然后點格式化"></textarea> <button onclick="format()" style="position:absolute;top:313px;left:738px">格式化>></button> <button onclick="download()" style="position:absolute;top:393px;left:738px">結果下載</button> <textarea id="result" rows="50" cols="100" style="margin-left:100px" placeholder="格式化結果顯示框"></textarea> </body> <script> function format(){ document.getElementById("result").value ="" var content = document.getElementById("content").value; if(content){ var array = content.match(/(\d+)\.\s*([一二三四五六]\d+班).?([\u4e00-\u9fa5]+).?(\w+)/g); for(var i=0;i<array.length;i++){ var line = array[i]; line.match(/(\d+)\.\s*([一二三四五六]\d+班).?([\u4e00-\u9fa5]+).?(\w+)/g); var result = RegExp.$2+","+RegExp.$3+","+RegExp.$4; document.getElementById("result").value = document.getElementById("result").value+result+"\n" } } } function download( ){ var array = document.getElementById("result").value.split("\n") var data = []; for(var i=0;i<array.length;i++){ var line = array[i]; var lineData = line.split(","); var className = lineData[0]; var cname = lineData[1]; var ename = lineData[2]; data.push({className:className,cname:cname,ename:ename}) } JSONToExcelConvertor(data) } function JSONToExcelConvertor( data) { var content = "班級,中文姓名,英文姓名\r\n"; for (var i = 0; i < data.length; i++) { if(data[i].cname){ content+=data[i].className+","+data[i].cname+","+data[i].ename+"\r\n"; } } var uri = new Blob(['\ufeff' + content], {type:"text/csv"}); if (window.navigator && window.navigator.msSaveOrOpenBlob) { // for IE window.navigator.msSaveOrOpenBlob(content, "下載的表格.csv"); } else { var link = document.createElement("a"); link.href = URL.createObjectURL(uri); link.style = "visibility:hidden"; link.download = "下載的表格.csv"; document.body.appendChild(link); link.click(); document.body.removeChild(link); } } </script> </html>