一个小工具,解析微信接龙数据,转成excel表格(附源码)

时间:2024-03-11 21:09:18

需求:

很多个微信群,群中进行接龙,填写个人姓名及英文名称。原始数据格式如下:

#接龙
为了双师课堂的有效进行,现需要统计学生的英文名字,如下

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>