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 사용) |