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 을 만들 때는 아래와 같은 절차로 이루어진다.- workbook 생성
- workbook 안에 sheet 생성
- sheet 안에 row 생성
- 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;");
}
댓글 없음:
댓글 쓰기