18.Excel

18.1Excel Import/Export

nexacro platform은 투비소프트에서 제공하는 nexacro-xeni.war모듈을 이용하여 엑셀 Import/Export를 구현할 수 있습니다.

Excel Export/Import는 POI(Jakarta POI) 모듈을 사용합니다.

18.1.1사전 준비사항

1) 기술지원 홈페이지를 통해 nexacro-xeni.war파일을 다운로드 받는다. 
   예) nexacro-xeni.war (다운받는 파일명은 파일명과 빌드날짜로 구성되어 있습니다.
       (nexacro-xeni.war_2014.04.22.zip)

그림 18-1nexacro-xeni

2) 1)번의 zip파일 압축 해제.

그림 18-2nexacro-xeni_1

3) nexacro-xeni.war 파일압축해제.

그림 18-3nexacro-xeni_2

4) 압축을 해제한 nexacro-xeni폴더를 WAS경로에 복사합니다.

그림 18-4nexacro-xeni_3

export/import폴더는 excel를 Import 및 Export작업진행시 자동으로 생성됩니다.

5) nexacro x-api에 대한 서버 라이센스 파일을 lib폴더에 복사합니다.
   (해당 라이센스 파일은 제품구입시 전달됩니다.)

그림 18-5nexacro-xeni_12

6) WAS를 restart합니다.
7) 정상 설치여부 확인
   해당 모듈이 정상적으로 설치되었는지 확인을 하는 방법으로 
   아래와 같이 웹브라우저를 통해 XML화면이 나타나는지 확인할 수 있습니다.

그림 18-6nexacro-xeni_5

위의 작업이 정상적으로 진행이 되었다면 Excel작업을 위한 사전준비가 끝납니다.

nexacro-xeni폴더 접근 오류시 체크사항

환경설정이 모두 완료된 후에 nexacro-xeni폴더 접근이 안되는 경우에는 WAS에서 
해당 경로 접근이 가능하도록 세팅이 필요합니다.
예) Tomcat의 경우 server.xml에 Context path를 설정해 줍니다.

그림 18-7nexacro-xeni_4

18.2Export

그리드에 표현된 내용을 Excel파일로 Export하는 방법을 기술합니다.

18.2.1Basic

그림 18-8nexacro-xeni_6

Export 버튼을 클릭하여 그리드에 보여지는 내용을 excel로 export합니다.

그림 18-9nexacro-xeni_7

위의 그림과 같이 창이 실행되면 열기, 저장, 다른 이름으러 저장 등을 선택합니다.

export시 위와 같이 열기,저장,다른 이름으로 저장하기 창이 오픈되지 않고 웹브라우저를 통해

파일이 깨져서 나오는 경우에는 WAS의 web.xml에 mime-mapping 를 추가해 주신 후

was를 restart해 주시면 위와 같은 결과를 확인할 수 있습니다.

그림 18-10nexacro-xeni_9

그림 18-11nexacro-xeni_8

위와 같이 엑셀을 통해 그리드에서 표현된 내용을 확인할 수 있습니다.

이벤트

Excel의 처리결과를 이벤트를 통해 확인할 수 있습니다.
표 18-1이벤트 설명

Name

Description

onerror

Export 도중 오류가 발생되었을때 발생되는 이벤트입니다

onprogress

Export 수행도중 진행 상태별로 발생하는 이벤트입니다

onsuccess

Export 가 완료되었을때 발생되는 이벤트입니다

주요 소스 내용

this.url = "http://  WAS Path  /nexacro-xeni/XExportImport";
this.Button00_onclick = function(obj:Button,  e:nexacro.ClickEventInfo)
{
  this.ExcelExportObject00 = new ExcelExportObject(); 
  this.ExcelExportObject00.addEventHandler("onprogress",   
  this.ExcelExportObject00_onprogress, this);
  this.ExcelExportObject00.addEventHandler("onsuccess",   
  this.ExcelExportObject00_onsuccess, this); 
  this.ExcelExportObject00.addEventHandler("onerror",  
  this.ExcelExportObject00_onerror, this);  
 
 var ret = this.ExcelExportObject00.addExportItem(nexacro.ExportItemTypes.GRID, this.gd_excel, "Sheet1!A1");
  this.ExcelExportObject00.set_exportmessageprocess("%d [ %d / %d ]");
  this.ExcelExportObject00.set_exportuitype("exportprogress");
  this.ExcelExportObject00.set_exporteventtype("itemrecord");
  this.ExcelExportObject00.set_exporttype(nexacro.ExportTypes.EXCEL2007);
    
 
  this.ExcelExportObject00.set_exportfilename("ExcelExport_Sample");
  this.ExcelExportObject00.set_exporturl(this.url);       
  this.ExcelExportObject00.exportData();   
}
소스 위치

Sample\Excel\np_ExcelExport.xfdl

그리드의 내용을 엑셀로 Export하는 방법을 알고싶습니다.

18.3Import

작성된 엑셀파일을 이용하여 그리드에 Import하는 방법을 기술합니다.

18.3.1Basic

그림 18-12nexacro-xeni_11

Excel파일 Import 하기

그림 18-13nexacro-xeni_10

Import할려는 엑셀파일은 Grid에 바인드된 DataSet정보와 동일해야 합니다.

이벤트

Excel의 처리결과를 이벤트를 통해 확인할 수 있습니다.
표 18-2이벤트 설명

Name

Description

onerror

Import 도중 오류가 생겼을때 발생하는 이벤트입니다.

onsuccess

Import 가 완료되었을때 발생되는 이벤트입니다.

주요 소스 내용

this.url = "http://   WAS Path  /nexacro-xeni/XImport";
this.importObj = null;
this.Button02_onclick = function(obj:Button,  e:nexacro.ClickEventInfo)
{
 if(this.importObj == null){
  this.importObj = new nexacro.ExcelImportObject("Import00",this); 
  this.importObj.set_importtype(nexacro.ImportTypes.EXCEL);
  this.importObj.addEventHandler("onsuccess", this.Import00_onsuccess, this);
  this.importObj.addEventHandler("onerror", this.Import00_onerror, this); 
 }
 this.importObj.set_importurl(this.url);
 this.TextArea00.set_value(this.TextArea00.value + "\n"+ "importurl set :" + this.url); 
 
 this.importObj.importData("","Sheet1!A1:F6","ds_excel");
 this.TextArea00.set_value(this.TextArea00.value + "\n"+ "importData() Method"); 
}
소스 위치

Sample\Excel\np_ExcelImport.xfdl, Sample\Excel\file\ExcelExport_Sample.xfdl