Node.js

JS로 차트 훼손 없이 엑셀 수정하기!!!

bearn_soo 2024. 11. 16. 21:55

자바스크립트로 엑셀 파일을 생성하거나 수정하는데 자주 사용되는 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`

 

 

차트가 있는 기존 엑셀파일을 계속 수정하는데 차트가 계속 훼손되서 방법을 찾느라 정말 고생했어요ㅜㅜ