일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- gitignore
- node
- react
- window.postMessage
- readableStream
- signIn
- zerocho
- react-admin
- react-sortable-hoc
- TypeScript
- 가상 DOM
- API Gateway
- jimp
- cognito
- react DOM
- axios
- react-xml-parser
- domtoimage
- xlsx
- dynamodb
- electron-builder
- AWS
- electron
- yml
- timeinput
- react-hook-form
- Route53
- JavaScript
- 프로그래머스
- icrawler
Archives
- Today
- Total
꾸준히 공부하는 개발자
[Node.js] local에서 blob으로 오는 xlsx 읽기 본문
react admin 을 사용중 엑셀을 받으면 blob 으로 와서 이 엑셀을 읽는데 삽질을 꽤 많이 했다.
이런 blob 형식으로 읽는거는 처음이였으며, 경로로 읽는건 안되길래 검색도중 XMLHTtpRequest로 읽는 것을 보고 바로 적용해 보았더니 읽혀서 사용했다. 아직 blob, local, 통신방식을 나 자신은 잘 이해하지 못한것같아 나중에 공부하는 포스팅을 올리겠다.
params = "blob:localhost:3000/asfasfsdfsad" // 이런식이였던 것 같다.
const asyncRequestExcel = (params) => {
return new Promise(function (resolve, reject) {
const excelUrl = params.data.excel.src
const oReq = new XMLHttpRequest();
oReq.open("GET", excelUrl, true);
oReq.responseType = "arraybuffer";
oReq.onload = function (e) {
const arrayBuffer = oReq.response;
/* convert data to binary string */
const data = new Uint8Array(arrayBuffer);
const arr = new Array();
for (let i = 0; i != data.length; ++i) {
arr[i] = String.fromCharCode(data[i]);
}
const bstr = arr.join("");
const cfb = XLSX.read(bstr, {type: 'binary'});
const parsing = cfb.SheetNames.map(function (sheetName, index) {
// Obtain The Current Row As CSV
return XLSX.utils.sheet_to_json(cfb.Sheets[sheetName]);
})
resolve(parsing)
}
oReq.send()
})
}
'Node.js' 카테고리의 다른 글
[Node.js] ReadableStream 을 이용한 dblp.xml 파일 받아오기 (0) | 2019.12.20 |
---|---|
[Node.js] bluebird.js Promise (concurrency) (0) | 2019.12.18 |
[Node.js] Jimp crop을 이용하여, 사진 자르기 (0) | 2019.11.19 |
[Node.js] Jimp 이용하여 비율에 맞게 resize (0) | 2019.11.18 |
[Node.js] xlsx를 이용하여 excel 다운로드 (0) | 2019.11.09 |
Comments