SpringMVC에서 Excel 및 PDF 생성

6790 단어 springMVCpdf
Excel과 PDF를 생성하려면 사용자 정의 뷰를 표시하는 뷰 해상도를 설정해야 합니다. 바로 BeanNameViewResolver입니다. 따라서 먼저 SpringMVC 프로필에 이 뷰 해상도를 추가합니다.
<!-- -->
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver">
       <property name="order" value="100"/>
</bean>

이 중 order 속성은 보기 해상도의 우선순위이며, 숫자가 작을수록 우선순위가 높으며, 기본 Internal ResourceViewResolver의 order 값은 Integer입니다.MAX_VALUE, 그래서 여기에 설정된 100은 틀림없이 이 수보다 작고 우선순위가 크다.보기를 요청할 때 SpringMVC는 이 보기 해상도를 먼저 사용하고 해석할 수 없으면 우선순위가 낮은 Internal ResourceView Resolver를 계속 사용합니다.
다음은 Excel 보기입니다.AbstractExcelView를 계승하고 buildExcelDocument 방법을 실현하는 ExcelView 클래스를 만듭니다.구체적인 부호는 다음과 같다.
@Component
public class ExcelView extends AbstractExcelView{
    @Override
    protected void buildExcelDocument(Map<String, Object> map, org.apache.poi.hssf.usermodel.HSSFWorkbook hssfWorkbook, javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse) throws Exception {
//  
        HSSFSheet sheet = hssfWorkbook.createSheet("list");
        sheet.setDefaultColumnWidth(12);
        HSSFCell cell = getCell(sheet, 0, 0);
        setText(cell, "Spring Excel test");


//  
        cell = getCell(sheet, 1, 0);
//  
        cell.setCellValue(" :2008-10-23");

        getCell(sheet, 2, 0).setCellValue(" 1");
        getCell(sheet, 2, 1).setCellValue(" 2");

        HSSFRow sheetRow = sheet.createRow(3);
        for (int i = 0; i < 10; i++) {
            sheetRow.createCell(i).setCellValue(i * 10);
        }

    }
}

다음에 PdfView 클래스를 만들고 AbstractPdfView에서 계승하며 buildPdfDocument 방법을 실현합니다. 구체적인 코드:
@Component
public class PdfView extends AbstractPdfView {
    @Override
    protected void buildPdfDocument(Map<String, Object> map, com.lowagie.text.Document document, com.lowagie.text.pdf.PdfWriter pdfWriter, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
        List<String> list = new ArrayList<String>();
        list.add("<h1>Hello</h1>");
        list.add("World");

        for (int i = 0; i < list.size(); i++)
            document.add(new Paragraph(list.get(i)));

        document.addTitle("This is a PDF");
        document.addHeader("Header1","Header2");
        document.addAuthor("Elin");

    }
}

다음 컨트롤러를 만듭니다.Excel AndPDF라는 클래스를 만들고 두 개의 컨트롤러 방법을 추가하여 각각의 보기로 이동합니다.
@Controller
@RequestMapping("/ExcelAndPdf")
public class ExcelAndPdf {

    @RequestMapping("/excel")
    public String excelView(){
        System.out.println("Excel View");
        return "excelView";
    }

    @RequestMapping("/pdf")
    public String pdfView(){
        System.out.println("PDF View");
        return "pdfView";
    }
}

반환 문자열은 뷰의 클래스 이름과 첫 번째 알파벳 소문자여야 합니다.
그리고 인덱스에서.jsp에 포털 추가
<a href="ExcelAndPdf/excel">Excel</a><br>
<a href="ExcelAndPdf/pdf">PDF</a>

tomcat을 실행하면 Excel과 PDF 파일을 정상적으로 얻을 수 있습니다.

좋은 웹페이지 즐겨찾기