엑셀 파일의 내용을 시트 위로
import
합니다.
해당 함수를 호출시 파일 다이얼로그가 나타나고, 사용자가 엑셀 파일을 선택하면 선택된 파일을 서버측에 지정한 jsp(통상적으로LoadExcel.jsp
)파일로 전달 됩니다.
전달받은LoadExcel.jsp
파일에서는 엑셀 파일을 파싱하여 JSON string 형태로 클라이언트로 리턴하게 됩니다.
이 기능을 사용하시려면, 배포시 같이 제공되는/plugins/ibsheet-excel.js
파일을 include 하셔야 합니다.
LoadExcel.jsp
파일에 대한 경로는 Cfg속성 안에 Export 속성을 통해 설정되어야 합니다.
매 시트 생성시 마다 Export속성을 설정하기 번거로운 경우에는 IBSheet.CommonOptions 속성을 통해 모든 시트에 공통으로 설정할 수도 있습니다.
다시 정리해 보자면 다음과 같은 작업이 필요 합니다.
자바 서버모듈
ibsheet8-1.0.x.jar
파일과 관련 서버 라이브러리(POI jar파일)
를 WEB-INF/lib에 추가./plugins/ibsheet-excel.js
파일을 해당 페이지에 include.(cfg)Export
속성을 통해 LoadExcel.jsp
파일에 대한 경로 설정닷넷 서버모듈
IBSheet8-4.0.dll
파일과 공통 라이브러리(Syncfusion dll)
을 bin 또는 참조에 추가./plugins/ibsheet-excel.js
파일을 해당 페이지에 include.(cfg)Export
속성을 통해 LoadExcel.aspx
파일에 대한 경로 설정void loadExcel( param );
Name | Type | Required | Description |
---|---|---|---|
append | boolean |
선택 | 시트의 기존 데이터를 뒤에 엑셀의 데이터를 추가할지 여부(default: 0(false )설정을 하지 않으면 기존데이터는 모두 삭제한 후 엑셀의 데이터가 추가됨. |
fileExt | string |
선택 | 업로드 가능한 파일 확장자를 구분자("|")로 연결하여 설정합니다. (default: "xls|xlsx" ) |
maxFileSize | string |
선택 | 최대 업로드 가능한 파일 사이즈. (MB단위이며 설정하지 않으면 무제한입니다.) |
mode | string |
선택 | "HeaderMatch" , "NoHeader" , "HeaderSkip" 중에 하나의 문자열을 입력합니다.각 문자의 의미는 다음과 같습니다.
default: "HeaderMatch" )
|
startRow | number |
선택 | 엑셀에서 시트가 몇번째 행에서 시작하는지 설정합니다. 설정하지 않으면 엑셀의 첫번째 행부터 (1부터시작) 읽어들임. |
startCol | number |
선택 | 엑셀에서 시트가 몇번째 열에서 시작하는지 설정합니다. 설정하지 않으면 엑셀의 첫번째 열부터 (1부터시작) 읽어들임. mode: HeaderMatch 의 경우 (7,12)에 있는 시트를 찾을 때, startRow: 7 만 설정해 줘도 그 Row에 헤더길이만큼 텍스트를 보기 때문에 startCol 을 설정할 필요가 없다. 만약, startCol 을 사용할 경우, 엑셀에 있는 시트에 첫번째 컬럼부터 startCol 이 시작하게 된다. |
workSheetName | string |
선택 | 읽어들일 엑셀 파일의 워크시트 명을 설정합니다. 일치하는 워크시트 명이 없으면 첫번째 워크시트를 읽습니다. |
workSheetNameStrict | boolean |
선택 | workSheetName에 설정한 워크시트가 없는 경우 첫번째 워크시트를 로드하지 않고 -17 에러 코드를 반환합니다 |
workSheetNo | number |
선택 | 읽어들일 엑셀 파일의 워크시트 순번을 설정합니다. 설정하지 않으면 첫번째 워크시트를 읽습니다. |
columnMapping | string |
선택 | 엑셀 컬럼 번호를 이용해서 시트의 열 순서에 따라 데이터를 로드하는 옵션입니다. 구분자("|")로 연결하여 설정합니다.(1번부터 시작) mode 속성값은 무시된다. |
sendParam | object |
선택 | 엑셀 로드시 서버로 전달할 파라미터를 설정합니다. |
endRow | number |
선택 | 엑셀에서 몇번째 행까지 읽어들일 지 설정합니다. 설정하지 않으면 끝까지 읽어들입니다. 0부터 시작합니다. |
reqHeader | object |
선택 | 서버 전송 헤더에 사용자가 지정한 헤더 정보를 설정합니다. |
skipEmptyRow | boolean |
선택 | 엑셀 로드 시 빈 행을 생략할 지 설정합니다.(default: 1(true)) |
workbookPassword | number |
선택 | 읽어들일 엑셀 파일에 암호가 설정된 경우 사용하는 옵션입니다. 읽어들일 엑셀 파일의 암호를 작성합니다. |
useXhr | boolean |
선택 | xhr 통신을 이용해 엑셀 파일을 로드합니다. |
FullLoad
모드는 엑셀 업로드시 파일에 존재하는 모든 워크시트를 'NoHeader' 모드 상태로 업로드 다이얼로그에 로드하는 모드입니다.
로드된 워크 시트 중 한 가지를 선택한 뒤, 확인 버튼을 클릭해 선택된 워크 시트를 원본 시트에 로드하실 수 있습니다.
FullLoad
모드를 사용하시려면 반드시 다이얼로그 플러그인을 1.0.11
이후 버전으로, 서버모듈을 1.1.21
이후 버전으로, 엑셀 플러그인을 1.0.21
이후 버전으로 패치해주셔야 됩니다.
none
// 모드가 HeaderMatch, 엑셀이 5번째 로우의 위치, 워크시트 이름은 12월결산인 엑셀을 로드
var param = {startRow:5, mode:"HeaderMatch", workSheetName:"12월결산"};
sheet.loadExcel(param);
// 모드가 HeaderSkip, 엑셀이 4번째 로우, 3번째 컬럼부터 시작.
var param = {startRow:4, startCol:3, mode:"HeaderMatch"}
sheet.loadExcel(param);
// IBSheet의 첫번째 컬럼에 엑셀의 5번째 컬럼의 값을 로딩하고, IBSheet 의 5번째 컬럼에 엑셀의 1번째 컬럼의 값을 로딩
sheet.loadExcel({columnMapping:"5|4|3|2|1"});
product | version | desc |
---|---|---|
excel | 0.0.0 | 기능 추가 |
excel | 0.0.8 | reqHeader 기능 추가 |
excel | 1.0.12 | workSheetNameStrict 기능 추가 |
dialog | 1.0.11 | FullLoad 기능 추가 (servermodule : 1.1.21, excel : 1.0.21) |