사용자가 선택한 엑셀파일의 내용을 시트에 로드하지 않고 원하는 서블릿으로 전달하여 해당 서블릿에서 데이터베이스에 저장하게 끔 도와주는 기능입니다.
이 기능은 대량의 데이터가 담긴 엑셀파일의 내용을 사용자 피씨로 불러오고 이후 다시 저장하는 절차를 단순화 시켜는데 목적이 있습니다.
엑셀파일이 서블릿에 전달되는 과정은 아래와 같습니다.
해당 함수를 사용하시려면 자바 서버모듈의 경우
DirectLoadExcel.jsp와 더불어ibsheet8-1.0.x.jar파일과apache POI 라이브러리가 필요로 하고, 닷넷 서버모듈의 경우DirectLoadExcel.aspx와 더불어IBSheet8-4.0.dll파일과Syncfusion 라이브러리 dll이 필요합니다.그리고 import/export 관련 기능을 사용하시려면, 배포시 같이 제공되는
/plugins/ibsheet-excel.js파일을 include 하셔야 합니다.
void directLoadExcel( param );
| Name | Type | Required | Description |
|---|---|---|---|
| extendParam | string |
선택 | 전달할 parameter(querystring형식으로 작성, String 형태로 rquest.setAttribute("extendParam에 설정한 파라미터 이름")으로 담음) DirectLoadExcel.jsp에서 파싱한 정보를 처리할 서블릿(혹은 jsp)경로를 FP라는 이름으로 전달해야 함 |
| fileExt | string |
선택 | 업로드 가능한 파일 확장자를 구분자("|")로 연결하여 설정합니다. (default: "xls\|xlsx") |
| mode | string |
선택 | "HeaderMatch", "NoHeader", "HeaderSkip" 중에 하나의 문자열을 입력합니다. 각 문자의 의미는 다음과 같습니다.
default: "HeaderMatch")
|
| startRow | number |
선택 | 엑셀에서 시트가 몇번째 행에서 시작하는지 설정합니다. 설정하지 않으면 엑셀의 첫번째 행부터 (1부터시작) 읽어들임. |
| endRow | number |
선택 | 엑셀에서 시트가 몇번째 행까지 읽어들일지를 설정합니다. 설정하지 않으면 엑셀의 마지막 행까지 읽어들임. |
| workSheetName | string |
선택 | 읽어들일 엑셀 파일의 워크시트 명을 설정합니다. 일치하는 워크시트 명이 없으면 첫번째 워크시트를 읽습니다. |
| workSheetNo | number |
선택 | 읽어들일 엑셀 파일의 워크시트 순번을 설정합니다. 설정하지 않으면 첫번째 워크시트를 읽습니다. |
| reqHeader | object |
선택 | 서버 전송 헤더에 사용자가 지정한 헤더 정보를 설정합니다. |
| useXhr | boolean |
선택 | xhr 통신을 이용해 엑셀 파일을 로드합니다.0(false):xhr 통신 사용 안함 (default)1(true):xhr 통신 사용 |
none
//FP로 최종 데이터를 받을 서블릿(혹은 jsp) 경로를 지정해야 함
var param = {
startRow:5,
workSheetName:"sheet4",
extendParam:"year=2019&deptNo=0041&FP=./save/empExcelData.do"
};
sheet.directLoadExcel(param);
//directLoadExcel 자바 서버모듈 예시
List<Map<String, Object>> data = (List<Map<String, Object>>)request.getAttribute("SHEETDATA");
Map<String, Object> header = (Map<String, Object>)data.get(0);
for (String key : header.keySet()) {
System.out.print(key + "|");
}
System.out.println();
for (Map<String, Object> row : li) {
for (String key : row.keySet()) {
System.out.print(row.get(key) + "|");
}
System.out.println();
}
//directLoadExcel 닷넷 서버모듈 예시
List<Object> data = (List<Object>)this.Context.Items["sheetData"];
Dictionary<String, String> header = (Dictionary<String, String>)data[0];
foreach (String key in header.Keys) {
System.Diagnotics.Debug.Write(key + "|");
}
System.Diagnotics.Debug.WriteLine();
foreach (Dictionary<String, String> row in data) {
foreach (String key in row.Keys) {
System.Diagnotics.Debug.Write(row[key] + "|");
}
System.Diagnotics.Debug.WriteLine();
}
| product | version | desc |
|---|---|---|
| excel | 0.0.0 | 기능 추가 |
| excel | 0.0.8 | reqHeader 기능 추가 |