[컴][자바] Java servlet 에서 Excel 파일 만들기

Excel 파일 읽기 쓰기 / 자바에서 엑셀 파일 읽고 쓰기



Maven 에 poi 추가하기




...
<dependency>
     <groupId>org.apache.poi</groupId>
     <artifactId>poi</artifactId>
     <version>3.10.1</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.10.1</version>
</dependency>
...









POI classes

  • HSSF : Excel ’97(-2007) file format 을 구현한 것
  • XSSF : Excel 2007 OOXML (.xlsx) file format 을 구현한 것
  • SXSSF : XSSF 의 확장인데, 아주 큰 excel file(heap size 보다 큰) 을 만들때 쓴다.

POI-HSSF and POI-XSSF - Java API To Access Microsoft Excel Format Files 에서 보면 XSSF 는 xml 을 다루기 때문에 binary 를 다루는 HSSF 보다 processing 에 더 많은 memory 를 소모한다고 한다.


Excel file 쓰기

excel file 을 만들 때는 아래와 같은 절차로 이루어진다.
  1. workbook 생성
  2. workbook 안에 sheet 생성
  3. sheet 안에 row 생성
  4. cell 추가

Source codes


////
////  Create a Workbook of Excel
////
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet(sheetTitle);

Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("test1");



////
////  Set Header and make a packet
////
public void run(HttpServletResponse response) throws IOException{
        
    setHeader(response); 
    
    ServletOutputStream out = response.getOutputStream();
    workbook.write(out);
    out.close();
    
}


private void setHeader(HttpServletResponse response) {
    
    response.setHeader("Content-disposition","attachment;filename=" + fileName + EXTENSION_XLSX);
    response.setHeader("Content-Type", "application/vnd.ms-excel; charset=MS949");
    response.setHeader("Content-Description", "JSP Generated Data"); 
    response.setHeader("Content-Transfer-Encoding", "binary;"); 
    response.setHeader("Pragma", "no-cache;"); 
    response.setHeader("Expires", "-1;");
}



See Also

  1. Excel and Java - Read and Write Excel with Java - Tutorial



References





댓글 없음:

댓글 쓰기