Post
KO

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)resultMap.get("list");

    int index = list.size();

    String title = ”아이디,이름,EMAIL,연락처,등록일,최종접속”;

List excelList = new ArrayList();

  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 list = (List)model.get("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로 만들어 질 것이다.

(더 쉬운 방법으로 하신분이 계시다면 한번 확인해보고 싶다..)

This article is licensed under CC BY 4.0 by the author.