๐จ Front-End
[SheetJS] ๊ฐ์ฒด๊ฐ 'slice' ์์ฑ์ด๋ ๋ฉ์๋๋ฅผ ์ง์ํ์ง ์์ต๋๋ค.
์ฌใน1๋ธ
2017. 7. 19. 10:24
# ๋๋ถ๋ถ "๊ฐ์ฒด"๊ฐ 'xxx' ์์ฑ์ด๋ ๋ฉ์๋๋ฅผ ์ง์ํ์ง ์์ต๋๋ค.
์ ๊ด๋ จ๋ ์๋ฌ๋, ์ค์ "๊ฐ์ฒด"์ xxx๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋ ๊ฒ์ด๋ค.
ex) data.slice(l*w) ==> "๊ฐ์ฒด๊ฐ 'slice' ์์ฑ์ด๋ ๋ฉ์๋๋ฅผ ์ง์ํ์ง ์์ต๋๋ค."๋ผ๋ ์๋ฌ๊ฐ ๋ฌ๋ค๋ฉด
data๋ฅผ ๋จผ์ ์ดํด๋ณผ ๊ฒ. prototype๋ก ์ ์ธ๋ "slice"๊ฐ ์๋์ง ํ์ธํ ๊ฒ.
#
ie11 ํ๊ฒฝ์์ ie10 ๋ฒ์ ์ผ๋ก ํ
์คํ
ํ์ ๋ ์๊ธฐ๋ ์ค๋ฅ
"๊ฐ์ฒด๊ฐ 'slice' ์์ฑ์ด๋ ๋ฉ์๋๋ฅผ ์ง์ํ์ง ์์ต๋๋ค."
-> "xlsx.full.min.js" ๋ง importํ๊ธฐ ๋๋ฌธ์ด๋ค. ํ๋ก์ ํธ์ ํฌํจ๋ "shim.js" importํ๋ฉด ํด๊ฒฐ.
|
function fixdata(data) { var o = "", l = 0, w = 10240; for(; l<data.byteLength/w; ++l) o+=String.fromCharCode.apply(null,new Uint8Array(data.slice(l*w,l*w+w))); o+=String.fromCharCode.apply(null, new Uint8Array(data.slice(l*w))); return o; }
function fnParsingExcel(e) { var file = e.target.files[0]; var oReq; var workbook; var reader = new FileReader(); var name = file.name;
var agent = navigator.userAgent.toLowerCase(); if ( (navigator.appName == 'Netscape' && agent.indexOf('trident') != -1) || (agent.indexOf("msie") != -1)) { // ie10 ์ด์์ผ ๊ฒฝ์ฐ reader.readAsArrayBuffer(file); rABS = false; } else { // ie10์ ์ ์ธํ ๊ฒฝ์ฐ reader.readAsBinaryString(file); }
reader.onload = function(e) { var data = e.target.result; if (rABS) { /* if Binary String, read with type 'binary' */ workbook = XLSX.read(data, {type:'binary'}); } else { /* if array buffer, convert to base64 */ var arr = fixdata(data); workbook = XLSX.read(btoa(arr), {type:'base64'}); } /* DO SOMETHING WITH WOOKBOOK HERE */ }; } |