자바스크립트로 엑셀 파일을 생성하거나 수정하는데 자주 사용되는 npm 패키지들이 있습니다. 세 패키지에 대해 알아보고 어느 상황에서 어떤 라이브러리를 쓰면 좋을지 정리해 보겠습니다.
- sheetJS
- ExcelJS
- xlsx-populate
SheetJS
가장 대표적으로 많이 사용되는 라이브러리입니다. 주로 쓰거나 읽기 작업에 사용되는 라이브러리입니다. 가볍고 빠르기 때문에 간단한 작업을 하거나 브라우저를 사용할때 이용하면 좋습니다.
ExcelJS
SheetJS에 비해 스타일 지정, 차트, 머지 등 엑셀의 레이아웃 요소를 조작할 수 있는 고급 기능들을 더 제공합니다. 데이터 시각화와 포맷 중심의 엑셀 작업에서 주로 활용됩니다.
xlsx-populate
엑셀 문서 조작에 초점을 맞춘 라이브러리입니다. 기존 엑셀 파일을 수정 및 조작할 때 강력한 도구입니다!!!!!!!!
SheetJS와 ExcelJS와는 달리 차트가 있는 기존 엑셀 파일을 차트 훼손 없이 수정할 수 있습니다. 사실 세 라이브러리 모두 엑셀을 수정할 때는 파일을 읽고 수정을 한다음 덮어 쓰기 때문에 그대로 수정하는 것이 아닌 복사본을 생성해 수정한 후 덮어쓰는거라고 생각하면 됩니다. SheetJS와 ExcelJS는 기존 파일을 읽을때 차트 데이터를 보존하지 못합니다. 이와 달리 xlsx-populate 라이브러리는 차트 데이터도 보존해 파일을 생성합니다. 만약 기존 엑셀 템플릿을 이용해 파일을 수정한다면 xlsx-populate이 적합합니다. 단점이라면 다른 라이브러리에 비해 업데이트가 5년 이상 안되고 있습니다.
비교 요약
특징 | SheetJS | ExcelJS | xlsx-populate |
주요 기능 | 파일 읽기/쓰기 (간단) | 파일 생성/스타일 조작 (고급) | 기존 파일 수정 및 템플릿 활용 |
포맷 지원 | 다중 포맷 (`.xlsx`, `.csv`) | `.xlsx` (엑셀 중심) | `.xlsx` (엑셀 중심) |
스타일링 | 지원하지 않음 | 상세한 스타일링 가능 | 기존 스타일 유지 및 일부 조작 |
템플릿 활용 | 제한적 지원 | 지원 가능 | 강력한 템플릿 활용 가능 |
환경 | 브라우저/Node.js | 브라우저/Node.js | 브라우저/Node.js |
장점 | 경량, 빠름, 다목적 사용 가능 | 스타일링, 레이아웃 조작 최적화 | 기존 문서 스타일 보존에 강점 |
- 간단한 데이터 작업: `SheetJS`
- 고급 스타일 및 조작 필요: `ExcelJS`
- 기존 파일을 수정하거나 템플릿 작업: `xlsx-populate`
차트가 있는 기존 엑셀파일을 계속 수정하는데 차트가 계속 훼손되서 방법을 찾느라 정말 고생했어요ㅜㅜ
'Node.js' 카테고리의 다른 글
[error] Sequelize A is not associated to B (1) | 2024.11.19 |
---|---|
[노드 교과서] 섹션 9 - 익스프레스로 SNS 서비스 만들기 (0) | 2024.11.17 |
[Node.js 교과서] 섹션 8 - 몽고디비 (0) | 2024.11.11 |
[Node.js 교과서] 섹션7 - MySQL (3) | 2024.11.09 |
[Node.js 교과서] 섹션 6 - 익스프레스 웹 서버 만들기 (0) | 2024.11.03 |