엑셀 다운로드 기능 구현 방식은 크게 두가지가 있다.

  • (프론트) Javascript에서 table을 동적으로 만들어 excel파일로 write하도록 구현
  • (백엔드) 자바 POI 라이브러리를 이용해서 구현 이전에 엑셀 기능을 구현 하였을 때 경험 했던 내용을 토대로 각각의 적용 방법과 성능에 대해 비교해보기로 하였다.

Javascript를 통한 엑셀 다운로드 기능 구현

  • 백엔드단 없이 바로 적용 가능하다.
  • 브라우저와 사용자 PC 특성을 탄다.
  • 다운로드 받은 파일을 실행하면 “원본을 신뢰할 수 있는지 확인하십시오…“와 같은 메시지가 뜬다.
  • 엑셀 표 형식을 html 태그로 그리기 때문에, html 파일이 무거워지며 데이터가 많을 경우 브라우저가 멈추는 현상이 발생할 수 있다.


적용 방법

  • 컨트롤러 -> 서비스단을 통해 데이터를 받아온다.
  • 프론트 단에서 받아온 데이터를 기반으로 html table로 그린다.
  • excel로 write하고 close한다.

POI 라이브러리 이용

  • 데이터 양에 구애받지 않는다.
  • 파일 열때 위와 같은 메시지가 뜨지 않는다.
  • 시트 속성, 셀 값 속성을 용이하게 변경할 수 있다.

    HSSF, SXSSF의 차이점

  • XSSF : 파일 다운로드시, 메모리에 파일 데이터를 쌓아두고 다운로드 받는 방식
  • SXSSF : 임시 파일을 생성해 중간중간 임시파일에 작성해 메모리를 적게 사용할 수 있도록 하는 방식

적용 방법

  • 서비스단에서 데이터를 받아온다.
  • 컨트롤러단에서 받아온 데이터를 토대로 Workbook을 만든다.
  • 데이터를 write한 후, write가 완료되면 filestream 형식으로 받아온다.

oksusutea's blog

꾸준히 기록하려고 만든 블로그