Spring 3.0 ExcelView를 이용한 공통 엑셀 함수 만들기
ExcelView에서 공통으로 사용할 수 있는 방법을 찾던 중
title은 String으로 (,) 구분자를 주어서 넘기고, 엑셀 내용은
LinkedHashMap을 이용하여 값을 순서있게 저장시킨다.
ModelAndView 를 이용했다.
회원 정보를 가져오는 것이 엑셀할때 필요한데 방법은
기존에 member list 가져오는 데이터에서 아래와 같이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
public ModelAndView excelDownLoad (HttpServletRequest request, HttpServletResponse response ,ModelMap modelMap,
@ModelAttribute AdminVO vo,
UserListExcelView excelView)
resultMap = adminMemberDAO.selAdminMemberList(vo);
list = (List
int index = list.size();
String title = ”아이디,이름,EMAIL,연락처,등록일,최종접속”;
List
for(int i=0; i<index; i++){
LinkedHashMap map = new LinkedHashMap();
map.put(“am_id”,list.get(i).getAm_id());
map.put(“am_name”, list.get(i).getAm_name());
map.put(“am_email”,list.get(i).getAm_email());
map.put(“am_phone”,list.get(i).getAm_phone());
map.put(“regdate”,list.get(i).getRegdate());
map.put(“curdate”, list.get(i).getCurdate());
excelList.add(map);
}
// 리스트에 순서대로 담아준 뒤 (순서는 타이틀과 매칭 되도록 )
mav.addObject(“list”,excelList);
mav.addObject(“title”,title);
mav.setView(excelView);
//excelView로 넘겨준다.
이후 ExcelView 에서는 title을 저렇게 셋팅
// 타이틀 설정
String[] titleList = model.get(“title”).toString().split(“,”);
// 데이터 부분은
// 데이터 추가
List
for(int j=0 ; j<list.size(); j++){
HSSFRow dataRow = sheet.createRow(rowIdx++);
int celIdx=0;
for(Iterator linkitr = list.get(j).values().iterator(); linkitr.hasNext();){
HSSFCell dataCell = dataRow.createCell(celIdx);
dataCell.setCellValue(new HSSFRichTextString((String) linkitr.next()));
celIdx++;
}
}
과 같이 진행하면
저 형식대로 넘겨준다면 excel로 만들어 질 것이다.
(더 쉬운 방법으로 하신분이 계시다면 한번 확인해보고 싶다..)