SheetJS 기본 자료구조, 좌표계, 그리고 표시형식
SheetJS를 사용해서 JavaScript로 엑셀 파일을 만들고 편집할 수 있다.
자료구조
Workbook: 여러 시트의 모음. 엑셀 파일이다.
Sheet: 셀들의 객체 모음 (A1, B1, …)
Cell: {t, v, f, z} 형태의 단일 데이터
범위
const range = XLSX.utils.decode_range('A1:D10');
{
s: { r: 0, c: 0 }, // start: A1 (row=0, col=0)
e: { r: 9, c: 3 } // end: D10 (row=9, col=3)
}
순회 예시
const range = XLSX.utils.decode_range(ws['!ref']);
for (let C = range.s.c; C <= range.e.c; C++) {
const headerAddr = XLSX.utils.encode_cell({ r: 0, c: C });
const header = ws[headerAddr]?.v;
}
!ref 는 시트 내용이 들어있는 범위를 표현하는 특수 표현이다.
XLSX.utils.decode_range(ws['!ref'])
셀 구조
{ t: 's', v: '홍길동' }
t: type ('s': 문자열, 'n': 숫자, 'b': 불린, 'd': 날짜, 'e': 오류)
v: value
f: formular
z: 표시형식
z: '@' 하면 텍스트로 그대로 보여준다
z: '#,##0' 천단위 콤마
z: 'yyyy-mm-dd' 날짜
z를 지정하지 않으면 엑셀이 **타입(t)**을 기준으로 기본 표시 형식을 자동 적용됨.