當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
用JavaScript实现列数据的标出重复项和去重(解决科学计数法的excel数据去重异常问题)
生活随笔
收集整理的這篇文章主要介紹了
用JavaScript实现列数据的标出重复项和去重(解决科学计数法的excel数据去重异常问题)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
是這樣,通常情況下標出重復項和去重復項這種比較簡單的工作交給excel就可以了,但是excel有時候會出現(xiàn)無法處理的情況,比如說一串數(shù)字太長,會自動用科學計數(shù)法來表示,這個時候如果標出重復項就會出現(xiàn)亂標記的情況,如果將多位的數(shù)字轉換成字符串也會時好時壞,百度搜了許久,無果。
我默默的問候了一下excel的開發(fā)者的母親,然后決定自己搞一個,于是就又多了一個小工具:
<!DOCTYPE html> <html> <head><title>標出重復項</title><meta charset="utf-8" /><style type="text/css">.shower{width:400px;height:400px;margin:10px auto;padding:0;font-size:10px;font-family:宋體;}button{margin:10px;}</style> </head> <body style="width:100%;height:100%;margin:0;"> <div style="line-height:50px;text-align:center;width:100%;height:50px;color:white;background-color:deepskyblue;font-weight:bold;">標出重復項</div> <table style="border-collapse:collapse;width:100%;height:100%;text-align:center;"><tr><td colspan="2">請將excel內容復制粘貼到左邊再點擊相關功能</td></tr><tr><td><textarea id="in" class="shower"></textarea><br></td><td><div id="out" class="shower" contenteditable="true" style="overflow:auto;border:1px solid gray;background-color:#d7edf8"></div></td></tr><tr><td><button onclick="layout()">標出</button><button onclick="deleteduplicates()">去重</button></td><td><button onclick="copy()">復制結果到剪貼板</button></td></tr><tr><td colspan="2" id="say"></td></tr> </table></body> <script type="text/javascript">function copy() {var div = id('out');if (document.body.createTextRange) {var range = document.body.createTextRange();range.moveToElementText(div);range.select();} else if (window.getSelection) {var selection = window.getSelection();var range = document.createRange();range.selectNodeContents(div);selection.removeAllRanges();selection.addRange(range);/*if(selection.setBaseAndExtent){selection.setBaseAndExtent(text, 0, text, 1);}*/} else {console.warn("none");}document.execCommand("Copy"); // 執(zhí)行瀏覽器復制命令var d = new Date();id("say").innerHTML = d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds() + ' 已復制到剪貼板'; }function id(x){return document.getElementById(x); }var _2darr = []; var hash = {};function store(){_2darr = [];hash = {};var invalue = '';if(window.navigator.userAgent.indexOf("MSIE")>=1){invalue = (id("in").value+'\r').split('\n');}else{invalue = (id("in").value).split('\n');}for(var i=0;i<invalue.length;i++){_2darr[i] = [];var ti = invalue[i].split('\t');for(var j=0;j<ti.length;j++){_2darr[i].push(ti[j]);}} }function layout(){store();for(var i=0;i<_2darr.length;i++){var mark = '';for(var j=0;j<_2darr[i].length;j++){mark += _2darr[i][j];}if(mark in hash){hash[mark]+=1;}else{hash[mark]=1;}}var len = _2darr[0].length;var tmp = '<table style="border-collapse:collapse;font-family:宋體;font-size:10px;">'for(var i=0;i<_2darr.length;i++){tmp += '<tr>';var mark = '';for(var k=0;k<_2darr[i].length;k++){mark += _2darr[i][k];}for(var j=0;j<len;j++){tmp += '<td style="height:12px;padding:0;border:1px solid;background-color:'+ (hash[mark]>1?'orange':'') +'"><span>'+ (_2darr[i][j]==undefined?'':_2darr[i][j]) +'</span></td>';}tmp += '</tr>';}tmp += '</table>';id("out").innerHTML = tmp;id("say").innerHTML = '總條目數(shù):'+_2darr.length; }function deleteduplicates(){store();for(var i=0;i<_2darr.length;i++){var mark = '';for(var j=0;j<_2darr[i].length;j++){mark += _2darr[i][j];}if(mark in hash){hash[mark]+=1;}else{hash[mark]=1;}}var len = _2darr[0].length;var hash2 = {};var tmp = '<table style="border-collapse:collapse;font-family:宋體;font-size:10px;">'var sum = 0;for(var i=0;i<_2darr.length;i++){var mark = '';for(var k=0;k<_2darr[i].length;k++){mark += _2darr[i][k];}if(mark in hash2){hash2[mark]+=1;}else{hash2[mark]=1;}if(hash2[mark]&&hash2[mark]==1){sum+=1;tmp += '<tr>'for(var j=0;j<len;j++){ tmp += '<td style="height:12px;padding:0;border:1px solid;"><span>'+ (_2darr[i][j]==undefined?'':_2darr[i][j]) +'</span></td>';}tmp += '</tr>';} }tmp += '</table>';id("out").innerHTML = tmp;id("say").innerHTML = '去重后總條目數(shù):'+sum; }</script> </html> 《新程序員》:云原生和全面數(shù)字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的用JavaScript实现列数据的标出重复项和去重(解决科学计数法的excel数据去重异常问题)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++ 用指针将函数作为参数传参
- 下一篇: 用go语言制作读取excel模板批量生成