SPRING MVC AbstractExcelView & AbstractPdfView Class Excel,Pdf...

SPRING MVC AbstractExcelView & AbstractPdfView Class Excel,Pdf...

월별로 페이지 뷰 통계 정보나, 급여 명세서와 같은 정보를 엑셀로 제공해야 하는 경우들도 생긴다.

따라서 SPRING는 엑셀 형식으로 뷰 데이터를 생성할 수 있도록 View Class도 제공한다.

AbstractExcelView - POI API를 이용하여 엑셀 응답을 생성.

AbstractJExcelView - JExcel API를 이용하여 엑셀 응답 생성.

..POI API를 이용한 엑셀 응답을 생성하는 AbstractExcelView Class가 정의하는 메서드

protected abstract void buildExcelDocument(

Map model, HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception;

HSSFWorkbook는 POI API가 제공하는 엑셀 관련 Class.

하위 Class는 이 Class를 이용해 엑셀 문서를 생성

예시.

public class PageRanksView extends AbstractExcelView { // 엑셀을 띄는것을 사용할수있게 extends를하고

@SuppressWarnings("unchecked")

@Override

protected void buildExcelDocument(Map model,

HSSFWorkbook workbook, HttpServletRequest request,

HttpServletResponse response) throws Exception{

HSSFSheet sheet = createFirstSheet(workbook);

createColumnLabel(sheet);

List pageRanks = (List) model.get("pageRanks");

int rowNum = 1;

for(pageRank rank : pageRanks) {

createPageRankRow(sheet, rank, rowNum++);

}

}

private HSSFSheet createFirstSheet(HSSFWorkbook workbook) {

HSSFSheet sheet = workbook.createSheet();

workbook.setSheetName(0, "페이지 순위"); // 맨 아래 하단 엑셀 단이름을 페이지 순위라고 값을 정하고

sheet.setColumnWidth(1, 256 *20); // 1번째 값을준다

return sheet; //리턴한다

}

private void createColumnLabel(HSSFSheet sheet) {

HSSFRow firstRow = sheet.createRow(0);

HSSFCell cell = firstRow.createCell(0);// 1번째행 내용은

cell.setCellValue("순위");

cell = firstRow.createCell(1); // 2번째행 내용은

cell.setCellValue("페이지");

}

private void createPageRankRow(HSSFSheet sheet, pageRank rank, int rowNum) {

HSSFRow row = sheet.createRow(rowNum);

HSSFCell cell = row.createCell(0);

cell.setCellValue(rank.getRank());

cell = row.createCell(1);

cell.setCellValue(rank.getPage());

}

}

출력결과 예,

AbstractPdfView Class를 이용한 PDF Download

SPRING는 iText API를 이용해 PDF를 생성할 수 있는 AbstractPdfView Class를 제공

메서드 :

protected abstract void buildPdfDocument(Map model, Document document, PdfWriter writer,

HttpServletRequest request, HttpServletResponse response) throws Exception;

com.lowagie.text.Document Class는 iText가 제공하는 Class

Document 객체에 PDF문서를 생성하는데 필요한 객체를 추가하면 PDF문서를 생성할 수 있다.

AbstractPdfView 를 상속받아 PDF문서를 생성하는 뷰 CLass.

결과 :

from http://workerst.tistory.com/71 by ccl(A) rewrite - 2021-12-28 17:01:37