IBSheet의 서버모듈은 오픈 소스인 poi 라이브러리를 이용하여 다운로드를 구현되었습니다.
poi 버전의 라이브러리와 당사에서 제공하는 라이브러리가 WEB-INF/lib 폴더에 존재해야 엑셀 다운로드가 가능합니다.
엑셀 다운로드 시 필요 파일 목록 확인(링크)
poi 3.13과 poi 4.1.2 두 가지 버전을 제공합니다.
이 때 전달드리는 jar 파일 목록을 직접 올리지 않고 Maven Repository와 같은 곳에서 dependency 를 등록하여 사용 가능합니다.
단, ibsheet 엑셀 다운로드/업로드 코어 파일 ibsheet8-x.x.x.jar, 이미지 다운로드시 필요한 batik-all-xml.jar, pdf 다운로드시 필요한 ib-itext.jar 는 scope를 system으로 설정하여 해당 의존성을 로컬파일 시스템에서 직접 참조하거나 Local Repository를 구성해주셔야 합니다.
(batik-all-xml.jar 은 내부적으로 여러개의 jar 파일을 한번에 묶어서 컴파일한 jar 입니다.
ibsheet 이미지 처리 모듈에 맞게 묶었기 때문에 Maven Repository 설정이 어렵습니다.)
버전별 dependencies 내용은 아래와 같습니다.
1. poi 버전이 3.13인 경우
<dependencies>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.13</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.13</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.13</version>
</dependency>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>2.3.0</version>
</dependency>
</dependencies>
2. poi 버전이 4.1.2인 경우
<dependencies> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.13</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-collections4</artifactId> <version>4.4</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-compress</artifactId> <version>1.19</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.3</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-math3</artifactId> <version>3.6.1</version> </dependency> <dependency> <groupId>com.github.virtuald</groupId> <artifactId>curvesapi</artifactId> <version>1.06</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.2</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.2</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>4.1.2</version> </dependency> <dependency> <groupId>com.zaxxer</groupId> <artifactId>SparseBitSet</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>org.apache.xmlbeans</groupId> <artifactId>xmlbeans</artifactId> <version>3.1.0</version> </dependency> </dependencies>
3. 로컬인 경우
scope system 지정 하는는 부분은 아래 내용을 참고해주세요.
<!-- ibsheet excel 다운로드 관련 --> <dependency> <groupId>ibsheet.ui</groupId> <artifactId>ibsheet8</artifactId> <version>1.1.1</version> <scope>system</scope> <systemPath>${basedir}/src/main/webapp/WEB-INF/lib/ibsheet8-1.1.1.jar</systemPath> </dependency> <dependency> <groupId>batik-all</groupId> <artifactId>batik-all</artifactId> <version>1.0</version> <scope>system</scope> <systemPath>${basedir}/src/main/webapp/WEB-INF/lib/batik-all-xml.jar</systemPath> </dependency> <dependency> <groupId>ib-itext</groupId> <artifactId>ib-itext</artifactId> <version>1.0</version> <scope>system</scope> <systemPath>${basedir}/src/main/webapp/WEB-INF/lib/ib-itext.jar</systemPath> </dependency>
systemPath로 직접 jar파일의 경로를 지정해주시면 됩니다.
그리고 Local Repository구성하는 방법은 아래 링크를 참조해주시기 바랍니다.
https://sleepyeyes.tistory.com/43
ALSO