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;"); }
댓글 없음:
댓글 쓰기