IBSheet8의 엑셀 업로드/다운로드 기능은 클라이언트 모듈(js)서버 모듈(java, .net) 두 가지 방식으로 제공됩니다.


1. 서버 모듈 

  • 엑셀 다운로드

    - IBSheet의 설정 정보와 조회 데이터를 서버로 전송(multipart 또는 post 전송)
    - 서버에서 엑셀 파일을 생성 후 생성된 파일을 사용자 브라우저로 전송 처리

     
  • 엑셀 업로드

    사용자가 선택한 엑셀 파일과 IBSheet의 설정 정보를 서버로 전송 (multipart 전송)
    - 서버는 수신한 엑셀 파일과 IBSheet 설정 정보매핑하여 json 데이터 생성 전송

    - IBSheet가 리턴 된 json 데이터를 로드(조회와 유사한 형태)

2. 클라이언트 모듈

  • 엑셀 다운로드

    JavaScript를 이용해 브라우저 내에서 IBSheet의 데이터를 읽고, 이를 기반으로 .xlsx 파일을 생성하여 사용자에게 다운로드
     
  • 엑셀 업로드

    사용자가 선택한 엑셀 파일(.xlsx)을 JavaScript로 직접 읽고 파싱한 뒤, 해당 데이터를 IBSheet에 로드


* 참고 : 각 방식 별 장단점

클라이언트 모듈
서버 모듈
장점 :
- 설정이 단순하여 바로 사용이 가능
- 서버에 부담를 주지 않고 사용자PC의 컴퓨팅 파워를 이용하여 엑셀 다운로드
- 각 셀에 설정된 디자인(배경색,글자색 등) 반영이 용이함

단점 :
- DRM 이 설정된 Excel 파일 처리 불가
- 구형브라우저(Internet Explorer)사용자는 사용이 불가
- xls 서식 지원 불가
- 데이터 양이 많은 경우(5,000행 이상) 성능 저하
장점 :
- 사용자의 브라우저 버전과 무관하게 사용 가능
- 대용량(5,000행 이상)에 대해 안정적으로 처리 가능
- DRM 파일에 대한 처리 가능
- xls 파일 지원

단점 :
- 큰 데이터 다운로드 시 서버 측 부하로 인한 장애(OOME)가 발생할 위험 (다운로드 범위 제한이 필요)
- 레거시 시스템에서 사용하는 공통 library와 버전 충돌 문제 발생 가능성(apache POI 사용)