рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдУрдкрди рдПрдХреНрд╕рдПрдордПрд▓ рдПрдХреНрд╕реЗрд▓ рдлрд╛рдЗрд▓реЗрдВ рдЦреЛрд▓реЗрдВ

рдПрдХреНрд╕реЗрд▓ рд╕реЗ рд╣рдорд╛рд░реА рд░рд╕рдж рд╕рд╛рд╕ рд╕реЗрд╡рд╛ "рдПрдВрдЯ рд▓реЙрдЬрд┐рд╕реНрдЯрд┐рдХреНрд╕" рдХреЗ рдЖрдЙрдЯрд▓реЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдЖрдо рддреМрд░ рдкрд░ рд╕рд░реНрд╡рд░ рдкрд░ рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рдФрд░ рдХрд┐рд╕реА рднреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдЧреНрд░рд╛рд╣рдХ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддреНрдпреЗрдХ рд▓рд╛рдЗрди рдХреА рдЕрдЦрдВрдбрддрд╛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрди рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддрд╛ рдерд╛, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдПрдЪрдЯреАрдПрдордПрд▓ 5 рдлрд╝рд╛рдЗрд▓рдПрдкреАрдЖрдИ рдФрд░ рд╕рднреА рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдЬреНрдЮрд╛рдкрд┐рдд рдбреНрд░реИрдЧ рдПрдВрдб рдбреНрд░реЙрдк рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рдПрдХреНрд╕реЗрд▓ рдУрдкрди XML рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдХреИрдЯрд▓реЙрдЧ рдФрд░ XML рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рд╣реИред JQuery XML рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ zippy рдирд╣реАрдВ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, zip.js рдкреБрд╕реНрддрдХрд╛рд▓рдп рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╡рд┐рд╢рд╛рд▓ рд╡рд┐рд╕реНрддрд╛рд░ рдкрд░ рдкрд╛рдпрд╛ рдЧрдпрд╛, рдЬрд┐рд╕рдиреЗ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдХрд╛рдо рдХрд┐рдпрд╛ред

рддреЛ, рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реИ:
<div class="main"> <progress id="progress"></progress> <div class="filedrag" id="comps">  <span class="red"></span></div> <div class="result"></div> </div> 

 var c = document.getElementById("comps"), FileDragHover = function (e) { e.stopPropagation(); e.preventDefault(); if(e.target.id==='comps') e.target.className = (e.type == "dragover" ? "filedrag hover" : "filedrag"); else c.className = (e.type == "dragover" ? "filedrag hover" : "filedrag"); } c.addEventListener("drop", function(e){ e.preventDefault(); c.className = "filedrag"; var files = e.target.files || e.dataTransfer.files; for (var i = 0, f; f = files[i]; i++) { if(f.name.toLowerCase().indexOf('xlsx')<=0) { alert('   Excel'); } else { zip.createReader(new zip.BlobReader(f), function(reader) { //     reader.getEntries(function(entries) { //       Excel console.info(entries) return false; }); }, function(error) { alert(": " + error) }); } } return false; }, false); c.addEventListener("dragover", FileDragHover, false); c.addEventListener("dragleave", FileDragHover, false); 


рдкрд░рд┐рдгрд╛рдо рдпрд╣рд╛рдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред рдирдореВрдирд╛ рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдлрд╝реЙрд░реНрдо рдкрд░ рдЦреАрдВрдЪреЗрдВред
рд╕рднреА Excel рдХрд╛рд░реНрдпрдкреБрд╕реНрддрд┐рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХрдВрд╕реЛрд▓ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред рдХрдВрд╕реЛрд▓ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЧреБрдгреЛрдВ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд╣реИ, рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╣рдо рдЙрди XML рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВрдЧреЗ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╣рдореЗрдВ рдкреБрд░рд╛рд▓реЗрдЦ рд╕реЗ рджреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:

рдЬрд╣рд╛рдВ:
рд╢реАрдЯ [рдПрди] .xlsx - рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдХреНрд╕реЗрд▓ рд╢реАрдЯ, рдПрди - рдкреБрд╕реНрддрдХ рдореЗрдВ рдЗрд╕рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрдЦреНрдпрд╛ред
shareStrings.xml - рдПрдХ рддрд╛рд░ рдХреА рдПрдХ рд╕рд╛рд╣рдЪрд░реНрдп рд╕рд░рдгреА, рдПрдХ рдкрддреНрд░рдХ рдХрд╛ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ред

рд╣рдо рдХреЗрд╡рд▓ рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
 //     reader.getEntries(function(entries) { var a=[],st; for(var i in entries){ var e=entries[i]; var fn=e.filename.toLowerCase(); if(fn.indexOf("sheet")>0){ a.push(e); } else if(fn.indexOf("sharedstring")>0){ st=e; } } //     Excel console.info(a) //    console.info(st) return false; }); 


рдЖрдк рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдкрд▓реЛрдб рдХрд░рдХреЗ рдФрд░ рдХрдВрд╕реЛрд▓ рдХреЛ рджреЗрдЦрдХрд░ рдпрд╣рд╛рдБ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдЧрд▓рд╛, рд╣рдореЗрдВ рд╕рд░рд▓ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╢рдмреНрджрдХреЛрд╢ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЯреА рд╣реИ , рд╢реАрдЯ рдкрд░ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╢реАрдЯрдбрд╛рдЯрд╛ рдкрдВрдХреНрддрд┐ рд╣реИ ред

рдПрдХреНрд╕реЗрд▓ рд╢реАрдЯ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрдВрдХреНрд╢рди рдЬреЛрдбрд╝реЗрдВ:
 printExcelData = function(sheets, strings) { var unzipProgress = document.getElementById("progress"); unzipProgress.style.display='block'; strings.getData(new zip.TextWriter(), function(text) { //          var i,st=$($.parseXML(decodeURIComponent(escape(text)))).find('si t'); for(i=0;i<st.length;++i) st[i]=$(st[i]).text(); //      var parseSheet=function(sheet){ var j,i,h,sh,d=[],s; sheet.getData(new zip.TextWriter(), function(text) { //      sh=$($.parseXML(decodeURIComponent(escape(text)))).find('sheetdata row'); //     sh.each(function(e){ var c=$(this).find('c'),ci,v,o={}; for(i=0;i<c.length;++i){ ci=$(c[i]); v=ci.find('v').text(); if(ci.attr('t')) v=st[v]; j=ci.attr('r').charCodeAt(0)-65; if(h) o[h[j]]=v; else o[j]=v; } if(h){ d.push(o) } else h=o; }); var id_name=""; for(i in h) if(h[i]=='Comp_Id'){ id_name=h[i]; break; } //   Comp_Id   ,    if(id_name=='Comp_Id') { unzipProgress.style.display='none'; //     s=""; for(i=0;i<Object.keys(h).length;i++) s+='<th>'+h[i]+'</th>'; $('.result thead tr').append(s) //   s=""; for(j=0; j<d.length; j++){ s+='<tr>'; for(i=0; i<Object.keys(h).length; i++){ s+='<td>'+d[j][h[i]].toString()+'</td>'; } s+='</tr>'; } $('.result tbody').append(s) sheets=[]; return; } if(sheets.length>0) parseSheet(sheets.pop()); }, function(current, total) { unzipProgress.value = current; unzipProgress.max = total; }); } parseSheet(sheets.pop()); }, function(current, total) { unzipProgress.value = current; unzipProgress.max = total; }); } 


рдЪреВрдВрдХрд┐ рдХреНрд░реЛрдо рдЗрд╕реЗ рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рдореЗрдВ HTML рдлрд╝рд╛рдЗрд▓ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдкрд░рд╛рдз рдорд╛рдирддрд╛ рд╣реИ (рдмрд┐рдирд╛ рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА рдХреЗ рд╕реБрд░рдХреНрд╖рд╛: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдЬреЗрдВрдЯ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдиреАрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред ), рдЕрдВрддрд┐рдо рдЙрджрд╛рд╣рд░рдг рд╡реЗрдм рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреАрдВрдЪреЗрдВ рдФрд░ рдорд╛рдирдХ HTML рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред

рдкреБрдирд╢реНрдЪ
рд╣рд╛рдВ, рдЕрдм, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдУрдкрди рдПрдХреНрд╕рдПрдордПрд▓ рдПрд╕рдбреАрдХреЗ рд╣реИ , рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╖рдп рд╣реИ ...

Source: https://habr.com/ru/post/In200770/


All Articles