js-xlsx 프런트엔드 읽기 Excel(가져오기) 호환 IE 및 기타 브라우저

2871 단어 프런트 엔드
인터넷에서 엑셀을 가져오는 글을 많이 봤는데 IE가 지원되지 않아서 기록해 보려고 합니다.
js-xlsx 전단에서 Excel 파일을 읽고 읽은 표 데이터를 페이지의table에 넣습니다.예는 다음과 같다.




    Excel	
   
   




$('#excel-file').change(function(e) { try { new Uint8Array([1,2]).slice(0,2); } catch (e) { console.log("[Uint8Array"+e.description+"] 【Array.slice】。"); //IE Uint8Array.slice() 。 Array.slice() Uint8Array.prototype.slice = Array.prototype.slice; } var url=$('#excel-file').val(); if(!url){return;} var suffix=url.substring(url.lastIndexOf(".")+1,url.length); if(!(suffix=="xls"||suffix=="xlsx")){ return alert(" "); } var files = e.target.files; var fileReader = new FileReader(); fileReader.readAsArrayBuffer(files[0]);// fileReader.onload = function(ev) { $('#excel-file').val(''); $("#context").html(""); try { var data = ev.target.result; var workbook = XLSX.read(data, { type: 'array'}), persons = []; } catch (e) { console.error(e); return alert(' !'); } // for (var sheet in workbook.Sheets) { if (workbook.Sheets.hasOwnProperty(sheet)) { persons = persons.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet],{raw:true, header:1})); for ( var i = 0; i <persons.length; i++){ var person=persons[i]; var tr='<tr id="tr-'+i+'">'; for (var j = 0; j <person.length; j++){ tr+='<td>'+$.trim(person[j]?person[j]:"")+'</td>'; } for (var k = 0; k < (6-person.length); k++) { tr+='<td></td>'; } if(person.length>1){ tr+='<td style="padding:6px;"><a href="javascript:$(\'#tr-'+i+'\').remove();" class="btn btn-danger btn-xs"> </a></td></tr>'; $("#context").append(tr); } } break;// , beak } } }; });

좋은 웹페이지 즐겨찾기