IBSheet8 의 엑셀 다운로드/업로드 기능은 크게 2가지로 제공 됩니다
1. 서버모듈
- 동작방식
다운로드 : IBSheet 정보와 조회 데이타를 서버로 전송하여, 서버에서 엑셀 파일을 만들어 다운로드 하는 방식
업로드 : IBSheet 정보와 파일을 서버로 전송, 서버에 받은 파일을 읽어 시트에 표시 하는 방식
- 구현하기
1) 배포한 라이브러리 파일 추가
- java - jar(WEB-INF/lib 경로에 추가) 추가
배포파일의 폴더의 구조는 아래와 같다.
1. 공통설정파일/lib 폴더안의 파일을 개발환경의 WEB-INF/lib 폴더에 추가 한다.
ibsheet8-1.X.X-.jar가 Core 파일이며 오픈 소스인 POI 라이브러리를 이용하여 개발 되었다.
core 파일 추가 시 Java EE 와 Jakarta EE에 맞는 JAR 파일을 추가 해야 한다.
Java EE 경우 3-2) java EE, Jakarta EE 경우 3-1) jakarta EE 폴더의 JAR 파일을 추가 한다.
jdk 1.8 이상 사용 가능하다. - 닷넷- dll(bin 경로에 추가) 추가
2) jsp(aspx) 파일 추가
1. 공통설정파일/jsp 폴더의 jsp 파일을 개발 환경의 특정 경로에 추가한다.(ex : /assets/ibsheet/jsp)
DirectDown2Excel.jsp(aspx)
DirectLoadExcel.jsp(aspx)
Down2Excel.jsp(aspx)
Down2Image.jsp(aspx)
Down2Pdf.jsp(aspx)
Down2Text.jsp(aspx)
LoadExcel.jsp(aspx)
LoadText.jsp(aspx)
3) 엑셀 js 링크 걸기 Plugins/ibsheet-excel.js
파일을 소스코드에서 javascript src 한다.
<script src="/assets/ibsheet/ibsheet.js"></script> <script src="/assets/ibsheet/locale/ko.js"></script> <!-- 서버모듈로 다운로드 하기 위한 엑셀 플러그인 링크 --> <script src="/assets/ibsheet/plugins/ibsheet-excel.js"></script>
3) (Cfg)Export에 jsp (또는 서블릿) 경로 설정
공통으로 설정하려면 ibsheet-common.js 파일의 _IBSheet.CommonOptions 설정
options.Cfg = { "Export":{ "Url" : "/assets/ibsheet/jsp", "Ext" : "jsp" //확장자 설정 default jsp } } //다운로드와 업로드를 각각 지정하는 경우 options.Cfg = { "Export":{ "Down2ExcelUrl" : "/assets/ibsheet/jsp/Down2Excel.jsp", "LoadExcelUrl" : "/assets/ibsheet/jsp/LoadExcel.jsp", } } //다운로드와 업로드를 각각 지정하는 경우(서블릿으로 작성된 경우) options.Cfg = { "Export":{ "Down2ExcelUrl" : "/assets/ibsheet/jsp/Down2Excel.do", "LoadExcelUrl" : "/assets/ibsheet/jsp/LoadExcel.do", } }
4) 함수 호출
//다운로드 var param = { FileName:"홍길동 교통비 내역.xlsx", downCols:"Visible", /* 보여지는 컬럼만 다운로드*/ downRows:"Visible", /* 필터링등을 통해 화면에 노출된 행만 다운로드 */ }; sheet.down2Excel(param); //업로드 var param = {mode:"HeaderMatch", workSheetName:"12월결산"}; sheet.loadExcel(param);
2. 클라이언트 모듈(xlsx 확장자만 가능)
- 동작방식
다운로드 : 브라우저에서 엑셀 파일을 생성 하는방식
업로드 : 브라우저에서 엑셀 파일을 읽어 시트에 표시 하는 방식
- 구현하기
1) jsZip 라이브러리 추가 (plugins/jszip.min.js
추가)
<script src="/assets/ibsheet/ibsheet.js"></script> <script src="/assets/ibsheet/locale/ko.js"></script> <!-- jszip 라이브러리 추가, 추가하지 않을 경우 자동으로 plugins/jszip.min.js ajax 호출 함 --> <script src="/assets/ibsheet/plugins/jszip.min.js"></script> |
2) 함수 호출
//다운로드 sheet.exportData( {fileName: "재고리스트.xlsx"} ); //업로드 var param = {mode:"HeaderMatch", workSheetName:"sheet"}; sheet.importData(param);
3. 업로드/다운로드 이벤트
options.Events = { onExportFinish:function(evtParam){ //다운로드 콜백 if(evtParam.result){ alert("다운로드가 완료 되었습니다.") } },onImportFinish:function(evtParam){ //업로드 콜백 if (evtParam["type"] == "TEXT") { document.getElementById("myDiv").innerText = evtParam["type"] + "파일을 load 하였습니다."; } } }