Excel 출력하기 (feat.sheetjs 선정)

김민찬·2022년 7월 9일
0

기타

목록 보기
9/11
post-thumbnail

내가 Excel 출력을?

이번에 회사에서 excel 출력을 Front-End 파트에서 맡게 되면서 내가 전담하게 되었다.

보통 Back-End 분들이 excel을 담당하고 Front-End에서는 다운로드 링크를 받아서 출력만 했었는데, 회사에서 처음으로 Front-End Side에서 Excel 생성을 하는 것이다.

최초라는것

  • 회사에서 최초라는 것은 아직 공통으로 설정한 라이브러리가 정해져 있지 않다는 것이다.
  • 그래서 라이브러리 설정부터 완성까지 전과정을 맡아서 하고 추후에 다른 프로젝트를 위해 라이브러리 사용 설명까지 하게되었다.

라이브러리 선정

Font-End에서 Excel 출력에 대한 가장 대표적인 라이브러리는 SheetJS와 ExcelJS이다.
여기서 XLSX가 SheetJS이다.

npm trends에서 비교

내가 요즘 라이브러리나 프레임워크의 대세를 조사할때 npm trends를 사용한다.

  • npm trends에서 SheetJS와 ExcelJS의 다운로드 차이는 SheetJS가 압도적인 수준이다.

  • 최근 업데이트는 ExcelJS는 1년 이상 지났고 SheetJS는 3개월 전이다.
  • 아무래도 SheetJS는 Pro 버전이 있어서 관리가 철저한 부분이 있다고 생각한다.

SheetJS는 Pro버전이 있다?!

하지만 Pro 버전이 있어서 급나누기도 철저하다.

  • SheetJS에서 Pro 버전의 급나누기가 애플 급이어서 추가적인 기능을 조금만 넣고 싶어서 검색만 해도 Pro버전을 구매해야지 가능하다고 한다.

대표적인 Pro버전이 필요한 목록은 두 가지 이다.

  • border style
  • image

image는 이번에 필수적인 사항은 아니여서 꼭 지원되지 않아도 되지만 border style을 지원하지 않는 것은 치명적이다.

그리고 Pro버전 구매를 하기 위해 Email을 보내봤는데 생각보다 아주아주 비싸다.

ExcelJS의 단점

그래서 ExcelJS로 돌아서려고 했지만 ExcelJS도 치명적인 단점이 존재했다.

  1. 사용자 풀이 적다.
    라이브러리를 사용하면서 벽에 부딪힐때 검색이 필요한데 ExcelJS는 사용자 풀이 적은 단점 때문에 Searching에 대한 벽이 존재한다.

  2. 라이브러리를 만든 국가에 대한 문제
    ExcelJS는 중국 SheetJS는 미국에서 만들었다.
    중국에서 만들어서 사용자들도 중국인들이 아주 많다.
    검색을 하면 중국어로 예시가 나오기도 한다.

SheetJS 단점 뛰어넘기

두 라이브러리 사이에서 고민을 하다가 SheetJS에서 border 스타일을 사용할 수 있는 라이브러리를 찾았다.

바로 xlsx-populate이다.
xlsx-populate로 cell merge와 border style추가를 아주 쉽게 할 수 있다.

이 라이브러리로 인해서 SheetJS의 사용을 고민하게 했던 단점을 극복할 수 있었다.

그래서 최종 선정은 SheetJS이다.

profile
두려움 없이

3개의 댓글

comment-user-thumbnail
2024년 4월 11일

실례가안된다면 sheetJS PRO 가격이 대략 어느정도되나요?

2개의 답글