사용자가 엑셀 파일을 업로드 할 때, ‘SheetJS’ 라이브러리를 활용하여 데이터 추출하는 방법을 정리해보려고 한다.
‘SheetJS’는 파일에서 가져온 blob 형태의 엑셀 데이터를 다양한 포맷으로 변환할 수 있는 함수들은 제공하며, CSV, Text, HTML, array of objects, list of formulae 와 같은 포맷의 종류가 있다.
그 중 sheet_to_json를 통해 엑셀 데이터를 Json로 파싱해보겠다.
let reader = new FileReader()
reader.readAsBinaryString(file)
reader.onload = async function (e) {
}
reader.onload = async function (e) {
let data = e.target.result
let workbook = read(data, { type: 'binary' })
// 엑셀 파일의 시트이름전체를 배열로 추출할 때는 workBook.SheetNames.forEach
let sheet = workbook.Sheets[workbook.SheetNames[0]]
const excelData = utils.sheet_to_json(sheet, {
header: state.HEADER,
range: 1,
raw: false,
})
SheetJs 라이브러리가 없던 시절에는 순수 자바스크립트로 데이터를 뽑아오고 가공했을 텐데, 그 방법이 궁금해진다.
굳이(?) 라는 생각이 들지만 라이브러리 없이 엑셀 데이터를 추출하는 연습을 해보려고 한다.
To be continue..