on
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