Whiteship's Note


14.6. Document views (Excel)

Spring/Chapter 14 : 2007.05.16 18:11


1. 컨트롤러 만들고 bean으로 등록하기

2. view 클래스 만들기

3. view 프로퍼티 파일에 class 추가

이렇게 세 단계를 거치면 됩니다. 이 전에 작성한 글 두개에서 컨트롤러 만들고 등록하고 view 프로퍼티에 class추가해 주는 부분은 많이 살펴봤기 때문에 이번에는 생략하겠습니다.

public class MemberListExelView extends AbstractExcelView {

    @SuppressWarnings("unchecked")
    @Override
    protected void buildExcelDocument(Map model, HSSFWorkbook wb, HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        HSSFSheet sheet;
        HSSFRow sheetRow;
        HSSFCell cell;

        sheet = wb.createSheet("MemberInfoList");
        sheet.setDefaultColumnWidth((short) 12);

        cell = getCell(sheet, 0, 0);
        setText(cell, "전체 멤버 조회");
        cell = getCell(sheet, 1, 0);
        setText(cell, "이름");
        cell = getCell(sheet, 1, 1);
        setText(cell, "이메일");
        cell = getCell(sheet, 1, 2);
        setText(cell, "홈페이지");

        List<MemberInfo> memberInfos = (List<MemberInfo>) model.get("members");
        MemberInfo memberInfo = null;

        for(int i = 0 ; i < memberInfos.size() ; i++ ){
            memberInfo = memberInfos.get(i);
            cell = getCell(sheet, i+2, 0);
            setText(cell, memberInfo.getName());
            cell = getCell(sheet, i+2, 1);
            setText(cell, memberInfo.getEmail());
            cell = getCell(sheet, i+2, 2);
            setText(cell, memberInfo.getHome());
        }
    }
}

getCell()로 cell을 가져 온 다음 setText(cell, String)으로 각각의 셀을 채워 넣는 형식입니다.
사용자 삽입 이미지
사용자 삽입 이미지
올커니.. 한글이 또 깨졌구나.

한글은 2byte 영문은 1byte 그래서 자꾸 깨지는 건데 HSSFCell API를 보면 setEncoding이라는 메소드가 있습니다. 여기에 1을 넣어주면 16bit, 0을 넣어주면 8bit로 설정된다고 합니다.

cell = getCell(sheet, 0, 0);
cell.setEncoding((short)1);
setText(cell, "전체 멤버 조회");

요런 식으로 중간 중간 setEncoding() 사용해주면 한글도 제대로 출력할 수 있습니다.

사용자 삽입 이미지

'Spring > Chapter 14' 카테고리의 다른 글

Spring에서 Freemarker 사용하기  (2) 2008.02.20
14.6. Document views (Excel)  (0) 2007.05.16
14.6. Document views (PDF)  (0) 2007.05.16
14.5. XSLT  (1) 2007.05.16
14.3. Tiles  (0) 2007.05.15
14. Integrating view technologies  (0) 2007.05.15
top


XML을 EXEL 파일로 바꾸기

Java : 2006.11.08 11:37


XML을 EXEL로 바꿀 수도 있고 그 반대로 EXEL 파일을 XML 파일로 바꿀 수 있는 API를 사용하는 java 코딩을 따라해 볼 수 있습니다.

Javaworld에 올라온 글을 참조하여 따라 해볼 수 있습니다.
URL = http://www.javaworld.com/javaworld/jw-10-2006/jw-1019-xmlexcel.html

jakarta에 있는 POI HSSF API
를 사용합니다.
URL = http://jakarta.apache.org/poi/hssf/index.html

필요한 jar파일은 여기서 직접 다운 할 수도 있습니다.



저번 방학 때 아르바이트로 비주얼 소프트 회사에서 일한 적이 있었는데 그 쪽에서 자체 개발한 class와 비주얼 베이직을 사용해서 DB에 있는 것을 SQL로 긁어와서 EXEL로 뿌려주는 ..일종의 리포트 폼을 만드는 일을 해봤었는데 API가 그냥 제공 되다니... 보면서 신기 했습니다. Jakatra 멋쟁이!

'Java' 카테고리의 다른 글

Java에서 실수 표현 부정확성  (19) 2006.11.15
Java 오픈소스 되다.(GPL 산하의)  (1) 2006.11.13
Null은 객체인가 아닌가? 2  (3) 2006.11.12
Null은 객체인가 아닌가?  (13) 2006.11.12
Reference Object 활용  (2) 2006.11.09
XML을 EXEL 파일로 바꾸기  (0) 2006.11.08
Enumeration & Iterator  (2) 2006.11.07
Auto (un)boxing은 -128~127  (4) 2006.11.07
탬플릿 클레스 만들기  (3) 2006.11.05
local inner class의 예  (0) 2006.11.05
객체지향의 구멍 static  (0) 2006.11.04
top