티스토리 뷰

JAVA

엑셀_multi_list 출력

keehyun2 2016. 3. 23. 10:37

엑셀 업로드 양식 생성 

회사 프레임워크에서 net.sf.jxls 라이브러리 를 사용하여 엑셀 출력을 한다. 

이번에 출력해야하는 양식은 첨부한 엑셀 처럼 sheet 별로 다른 목록을 가져오는 양식이다.

그러나 net.sf.jxls 로 multi sheet 에 목록을 가져 올수 있지만, 1가지 컬렉션(list) 에 대해서만 가져올수 있는 듯 했다. 

그래서 찾은게 Org.jxls:jxls 이다. 

(http://mvnrepository.com/ 에서 jxls 검색하면  다나옴.)

sheet 별로 다른 목록을 가져 올수도 있고, xml 을 사용하여 설정하는등 다양하고 유용한 기능이 많아보인다. 

<dependency>

   <groupId>org.jxls</groupId>

   <artifactId>jxls</artifactId>

   <version>2.2.9</version>

</dependency>

Org.jxls:jxls 에서 제공하는 라이브러리는 jdk 1.7 이상을 지원한다. 그러나 서버에는 1.6 이 설치되어있고 운영되고 있는 상태다. 


그래서 소스를 받아서 1.6 으로 바꾸고 에러나는 부분만 주석걸거나 수정하여서 재컴파일했다. (jxls, jxls-jexcel, jxls-poi)


my_repo.zip


재컴파일한 라이브러리들을 weblib 폴더에 3개의 library 를 추가해도 의존 하는 라이브러리들이 없어서 작동하지 않는다. 의존 관계인 라이브러리들을 찾아서 넣어주면 되겠지만 너무 많아지면 lib 관리가 힘들어질거라 생각해서 maven 을 활용하여 재컴파일한 라이브러리를 등록하기로 했다. 

<repository>

<id>in-project</id>

<name>custom jars</name>

<releases>

       <enabled>true</enabled>

       <checksumPolicy>ignore</checksumPolicy>

   </releases>

   <snapshots>

       <enabled>false</enabled>

   </snapshots>

<url>file://${project.basedir}/my_repo</url>

</repository> 


위와 같이 설정해주고 local maven repository 를 등록해주고 아래 스샷 처럼 폴더 구조를 생성하고.



<dependency> 

   <groupId>local</groupId>

   <artifactId>jxls</artifactId>  

   <version>1.0.0</version>

</dependency>

<dependency>

   <groupId>local</groupId>

   <artifactId>jxls-jexcel</artifactId>

   <version>1.0.0</version>

   <exclusions>

<exclusion>

<groupId>org.jxls</groupId>

<artifactId>jxls</artifactId>

</exclusion>

<exclusion>

<groupId>net.sourceforge.jexcelapi</groupId>

<artifactId>jxl</artifactId>

</exclusion>

</exclusions>

</dependency>

<dependency>

   <groupId>local</groupId>

   <artifactId>jxls-poi</artifactId>

   <version>1.0.0</version>

   <exclusions>

<exclusion>

<groupId>org.jxls</groupId>

<artifactId>jxls</artifactId>

</exclusion>

</exclusions> 

</dependency>


maven 에 위와 같이 라이브러리를 등록해주었다.  그러면 명시된 라이브러리와 의존하는 라이브러리들을 전부 가져오게된다. 

ps. 의존하는 라이브러리가 버전이 겹칠때 컴파일할 버전을 지정해주는 예시 


<dependencyManagement>

<dependencies>

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi</artifactId>

<version>3.12</version>

</dependency>

</dependencies>

</dependencyManagement>


'JAVA' 카테고리의 다른 글

Json Data Parse in Java  (0) 2017.06.25
Redis Java Client  (0) 2017.05.19
Socket Message  (0) 2017.01.08
스프링 프레임워크 장단점 분석  (0) 2016.04.12
JSTL if 조건문 내 공백 오류  (0) 2014.09.05
댓글
글 보관함
최근에 올라온 글
Total
Today
Yesterday
링크