Class GlueExcelInfo

java.lang.Object
com.poscoict.glueframework.biz.activity.GlueActivity<GlueContext>
com.poscoict.glueframework.biz.activity.GlueExcelInfo

public class GlueExcelInfo extends GlueActivity<GlueContext>
ExcelInfo Activity. Excel Download에 필요한 정보를 Setting하는 Activity Class이다. Property로 지정한 값을 GlueContext에 Put하여 ExcelView Class에서 Excel Generate 시 사용한다.
 Activity Property

 - file-name : (선택) Generate할 Excel File Name. 
                      Default값 : Service Name

 - excel-type : (선택) Excel의 Version으로 XSSF(Excel 2007 이상 버전)와 HSSF(Excel 2003 이하 버전) 두 가지 지정 가능하다. 
                      Default값 : XSSF  

 - sheet-name : (선택) Excel내 Sheet명으로 하나 이상 지정 시 space 없이 Delimiter [,]로 구분하여 입력한다. 
                      Default값 : 지정하지 않으면 sheet-id를 Sheet명으로 사용한다.

 - sheet-id : (필수) Sheet에 Data를 Generate하기 위한 

 - [sheet-id]-column-id : (선택) 해당 Sheet에 보여줄 column id를 지정한다.
                          query에서 100의 column을 조회하더라도 column-id에 지정한 column만 Excel로 Generate된다.
                          Default : 지정하지 않으면 query의 column을 모두 Generate.

 - [sheet-id]-column-name : (선택) 해당 Sheet에 보여줄 column명을 지정한다.
                          위의 column-id property와 매핑되도록 입력해야 한다.
                          Default : 지정하지 않으면 column-id값으로 Generate.

 - [sheet-id]-column-width : (선택) 해당 Sheet에 보여줄 column의 width를 지정한다
                          위 column-id property와 매핑되도록 입력한다
                          Default : 지정하지 않으면 Excel Default Width로 Generate된다.

 예제
 
 사용 예# 1

     <activity name="엑셀정보셋업" class="com.poscoict.glueframework.biz.activity.GlueExcelInfo">
         <property name="file-name" value="emp.xls" />
         <property name="excel-type" value="HSSF" />
         <property name="sheet-name" value="사원정보,부서정보" />
         <property name="sheet-id" value="emp,dept" />
         <property name="dept-column-id" value="deptno,dname" />
         <property name="dept-column-name" value="부서번호,부서명" />
         <property name="dept-column-width" value="80,120" />
         <transition name="success" value="end" />
     </activity>
     ==> GlueContext의 emp와 dept로 저장된 RowSet 객체를 Excel로 Export한다.
         Excel File명은 emp.xls이고 2003 이하 버전으로 생성된다.
         Excel Sheet명은 각각 [사원정보], [부서정보]로 명명되고
         [부서정보] Sheet에 보여줄 column은 deptno와 [dname 두 개만 보여준다(쿼리에는 deptno, dname, loc 세 개의 컬럼임)
                      column명은 각각 [부서번호], [부서명]으로 표기하며
                      column width는 80, 120 픽셀로 지정한다
         [사원정보] Sheet에 보여줄 column은 Query에서 조회한 컬럼을 모두 보여주고
                      column명은 column id로 표기되고
                      column width는 Excel Default width로 지정된다


 사용 예# 2
 - 필수 항목만 지정한 경우

     <activity name="엑셀정보셋업" class="com.poscoict.glueframework.biz.activity.GlueExcelInfo">
         <property name="sheet-id" value="emp,dept" />
         <transition name="success" value="end" />
     </activity>
     ==> GlueContext의 emp와 dept로 저장된 RowSet 객체를 Excel로 Export한다.
         Excel File명은 Service명으로 지정되고
         Excel Version은 2007 vesrion인 xlsx로
         Excel Sheet명은 각각 emp, dept로
         각 Sheet의 Column명은 쿼리에 지정된 Column Id로
         column width 또한 Excel의 Default값으로 설정된다.



 Excel을 Download하는 시나리오 및 흐름은 아래와 같다.
  1. 화면에서 사용자가 Export하기 위한 Data의 조건을 입력 후 Export 버튼 클릭
  2. Glue AD에서 Export할 Data를 조회된 후 RowSet(List<Map<String, Object>>)형태로 GlueContext에 저장
  3. GlueExcelInfo Activity(이 Activity)에서 Excel로 Generate하기 위한 정보를 지정
  4. Controller에서 조회한 Data를 화면으로 보내기 위한 ModelAndView에 View명을 지정
  5. Controller에서 지정한 View가 실행되며 GlueExcelInfo Activity에서 설정한 값을 바탕으로 Excel Generate

  ** 참고로 위 Flow에서 GlueExcelInfo Activity를 생략할 수 있다.
     생략할 경우 GlueExcelInfo에서 지정할 값을  화면에서 Request Parameter로 보내야 한다

 
  • Constructor Details

    • GlueExcelInfo

      public GlueExcelInfo()
  • Method Details

    • runActivity

      public String runActivity(GlueContext ctx)
      Description copied from class: GlueActivity
      Sub Class에서 반드시 구현하여야 하는 Abstract Method 이며 이 Method는 F/W에서 호출한다. 결과 값은 GlueContext에 담아서 다음 Activity 또는 F/W에 전달하게 된다. 필요한 모든 Data는 GlueContext에서 호출하여 사용하게 된다.
      
       예)
       <transition name="success" value="BizLogic"/>
       <transition name="failure" value="ErrorHandle"/>
       ==> return "success"이면 BizLogic Activity 를 실행함.
       
      Specified by:
      runActivity in class GlueActivity<GlueContext>
      Parameters:
      ctx - GlueContext
      Returns:
      String 정상적이면 "success"를 Return 하고 비정상 처리를 원하면 "failure"를 Return 한다.