poi 라이브러리 다운 후 아래와 같이 작성
Date today = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String fileName = "memberList"+sdf.format(today)+".xlsx";
String sheetName = "ExcelList";
// 워크북 생성
XSSFWorkbook workBook = new XSSFWorkbook();
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
List<MemberRS> list = memberService.getMemberList(condition);
if(list != null){
// 워크 시트 생성
XSSFSheet sheet = workBook.createSheet(sheetName);
// 로우생성
XSSFRow row = sheet.createRow(0);
// 셀 생성
row.createCell(0).setCellValue(new XSSFRichTextString("회원 명단"));
row = sheet.createRow(1);
row.createCell(0).setCellValue(new XSSFRichTextString("회원번호"));
row.createCell(1).setCellValue(new XSSFRichTextString("닉네임"));
row.createCell(2).setCellValue(new XSSFRichTextString("타입"));
// list 만큼 로우 생성
for (int i = 0; i < list.size(); i++) {
row = sheet.createRow(i+2);
row.createCell(0).setCellValue(list.get(i).getMember().getSeq());
row.createCell(1).setCellValue(new XSSFRichTextString(list.get(i).getMember().getNickname()));
row.createCell(2).setCellValue(new XSSFRichTextString(list.get(i).getMember().getType()));
}
}
ServletOutputStream sos = null;
try {
String contentType = "application/octet-stream";
sos = res.getOutputStream();
res.setContentType(contentType);
res.setHeader("Content-Type", contentType);
// 파일명 설정
res.setHeader("Content-Disposition", "attachment;filename=" + fileName + ";");
res.setHeader("Content-Transfer-Encoding", "binary");
res.setHeader("Pragma", "public");
res.setHeader("Expires", "0");
res.setHeader("Cache-Control", "max-age=0");
// 파일로 작성
workBook.write(sos);
sos.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
}finally {
if (sos != null) {
sos.close();
}
}
'웹개발 관련' 카테고리의 다른 글
[ORACLE] ORA-00913: 값의 수가 너무 많습니다 (0) | 2017.06.22 |
---|---|
웹사이트 확장자별 이미지 사용 (0) | 2017.04.25 |
[jstl] 웹 실행순서. javascript 에서 jstl 사용 (1) | 2017.04.13 |
[Mybatis] #(샵) $(달러) 차이 (0) | 2017.04.06 |
[jQuery] input 에 readonly 추가 (0) | 2017.04.06 |