시트의 내용을 엑셀이나 텍스트 파일로 다운로드하거나, 반대로 파일의 내용을 읽어 시트에 업로드하는 방법과 이를 위한 서버 환경 셋팅을 설명합니다.
이 내용은 서버 기반 파일 다운로드/업로드 방법입니다.
클라이언트 기반 다운로드/업로드는 exportData / importData 함수를 참고하세요.
업로드/다운로드 작업을 서버(백엔드)에서 처리하려면 다음과 같은 파일이 필요합니다. 서버모듈이 브라우저가 보낸 시트 데이터를 실제 엑셀/텍스트/PDF 파일로 생성하거나, 업로드된 파일을 파싱해 시트로 넘깁니다.
서버모듈 사양: JDK
1.8이상, Dynamic Web Module3.1이상
| 파일명 | 용도 |
|---|---|
| ibsheet8-x.x.x.jar | 엑셀 서버코어모듈 |
| ibsheet8-hwpx-x.x.x.jar | down2Hwpx 서버코어모듈 |
| poi-5.4.1, poi-ooxml-5.4.1, poi-ooxml-lite-5.4.1 | 엑셀 파일 생성/파싱 모듈 |
| commons-collections4-4.4.jar, commons-compress-1.27.1.jar commons-math3-3.6.1.jar, curvesapi-1.08.jar, servlet-api.jar SparseBitSet-1.3.jar, xmlbeans-5.3.0.jar |
poi 이용시 필요 파일 |
| commons-codec-1.18.0.jar | 엑셀 업로드 관련 인코딩 모듈, down2Hwpx시 필요 |
| log4j-api-2.24.3.jar | 로그 모듈 |
| ib-itext.jar | pdf 다운로드 모듈 |
| batik-all-1.17.jar, commons-io-2.18.0.jar xml-apis-ext-1.3.04.jar, xmlgraphics-commons-2.9.jar |
이미지 처리 관련 모듈, down2Hwpx시 필요 |
| 파일명 | 용도 |
|---|---|
| IBSheet8-4.0.dll | 엑셀 서버코어모듈 |
| IBSheet8-4.0.resources.dll | 엑셀 서버코어 서브모듈 |
| Syncfusion.Compression.Base.dll, Syncfusion.Core.dll, Syncfusion.XlsIO.Base.dll |
엑셀 생성/파싱 모듈 |
| wkhtmltopdf.exe | pdf생성 모듈 |
각 기능은 대응하는 jsp(닷넷은 aspx) 파일이 서버에 있어야 동작합니다. 이 파일들은 서버코어모듈(Java ibsheet8-x.x.x.jar, 닷넷 IBSheet8-x.x.dll)을 사용해 구현되어 있습니다. Java 서버모듈의 API(IBSheetDown / IBSheetLoad / Print2Pdf)와 커스터마이즈 방법은 서버모듈 함수를 참고하세요.
제공받은 파일을 웹 서버 폴더에 복사하고 Cfg.Export.Url로 경로를 지정합니다. (설정은 아래 준비 과정 참고)
| 파일명 | 용도 |
|---|---|
| Down2Excel.jsp(aspx) | 화면 시트 데이터를 엑셀로 다운로드 |
| LoadExcel.jsp(aspx) | 엑셀파일을 화면 시트로 업로드 |
| DirectDown2Excel.jsp(aspx) | DB에서 조회한 데이터를 서버에서 바로 엑셀로 다운로드 |
| DirectLoadExcel.jsp(aspx) | 업로드한 엑셀 데이터를 서버(DB 등)에 바로 적용 |
| Down2Text.jsp(aspx) | 텍스트파일 다운로드 |
| LoadText.jsp(aspx) | 텍스트파일 업로드 |
| Down2Pdf.jsp(aspx) | PDF파일 다운로드 |
| Down2Hwpx.jsp | 한글(Hwpx) 파일 다운로드 (닷넷 미지원) |
Maven을 사용하는 경우 pom.xml에 아래 의존성을 추가합니다. (POI 5.4.1 기준) POI 계열과 이미지 처리 라이브러리를 명시적으로 지정하며, IBSheet 코어 모듈(ibsheet8)과 PDF 다운로드용 ib-itext는 공개 Maven 저장소에 없으므로 system scope로 WEB-INF/lib의 jar 경로를 직접 지정합니다.
<dependencies>
<!--이미지 처리 관련 JAR-->
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-all</artifactId>
<version>1.17</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.18.0</version>
</dependency>
<dependency>
<groupId>xml-apis</groupId>
<artifactId>xml-apis-ext</artifactId>
<version>1.3.04</version>
</dependency>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>xmlgraphics-commons</artifactId>
<version>2.9</version>
</dependency>
<!--엑셀 처리 관련 JAR-->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.18.0</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.27.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.24.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.08</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-lite</artifactId>
<version>5.4.1</version>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>SparseBitSet</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>5.3.0</version>
</dependency>
<!--IBSheet 코어 모듈 (공개 저장소에 없음 → system scope)-->
<dependency>
<groupId>ibsheet.ui</groupId>
<artifactId>ibsheet8</artifactId>
<version>x.x.x</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/ibsheet8-x.x.x.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>
</dependencies>
IBSheet 코어(ibsheet8)와 ib-itext의 version, systemPath는 실제 사용 중인 jar 파일명과 경로에 맞게 지정하세요.
다운로드/업로드 작업을 하는 모든 페이지에 /plugins/ibsheet-excel.js를 include 해야 합니다.
시트 생성시 Cfg 프로퍼티에 Export.Url 속성을 통해 jsp 파일이 위치한 경로를 설정해야 합니다.
options.Cfg = {
"Export":{
"Url":"/assets/ibsheet/jsp"
}
}
down2Excel이나 loadText함수를 통해 시트의 내용을 다운로드/업로드 하실 수 있습니다.
sheet.down2Excel({"fileName":"boardList.xlsx","sheetDesign":1,"merge":1});

업로드/다운로드 함수에 대한 자세한 기능은 해당 함수에 대한 메뉴얼 파트를 참고해 주세요.
서버모듈과 관련 라이브러리(POI 등)가 정상적으로 로드됐는지는, 다운로드 처리 jsp(예: Down2Excel.jsp)에 아래 구문을 추가한 뒤 화면에서 down2Excel을 호출해 서버 콘솔 출력으로 확인합니다.
<%
System.out.println(com.ibleaders.ibsheet8.util.Version.getVersion());
%>
정상이면 서버 콘솔에 다음과 같이 서버모듈 버전과 로드된 jar의 경로/버전이 출력됩니다. (각 jar의 버전 정보를 확인하세요.)
********************************************************************************
# ibsheet8-x.x.X
# IBSheet(H) 8.0.0.0~
# IBChart(H) 7.3.0.1~
********************************************************************************
Class Info : org.apache.poi.ss.usermodel.Workbook
jar path : /D:/tomcat/tomcat-8.5_servertest/webapps/ibsheet8_demo_test/WEB-INF/lib/poi-5.4.1.jar
jar Version : Apache POI 5.4.1
Required Version : POI 3.8 beta3 or later
********************************************************************************
Class Info : org.apache.poi.ooxml.POIXMLDocument
jar path : /D:/tomcat/tomcat-8.5_servertest/webapps/ibsheet8_demo_test/WEB-INF/lib/poi-ooxml-5.4.1.jar
jar Version : Apache POI 5.4.1
Required Version : POI 3.8 beta3 or later
********************************************************************************
Class Info : org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbookPr
jar path : /D:/tomcat/tomcat-8.5_servertest/webapps/ibsheet8_demo_test/WEB-INF/lib/poi-ooxml-lite-5.4.1.jar
jar Version : Apache POI 5.4.1
Required Version : POI 3.8 beta3 or later
********************************************************************************
Class Info : org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbook
jar path : /D:/tomcat/tomcat-8.5_servertest/webapps/ibsheet8_demo_test/WEB-INF/lib/poi-ooxml-lite-5.4.1.jar
jar Version : Apache POI 5.4.1
Required Version : POI 3.8 beta3 or later
********************************************************************************
Class Info : org.apache.xmlbeans.XmlBeans
jar path : /D:/tomcat/tomcat-8.5_servertest/webapps/ibsheet8_demo_test/WEB-INF/lib/xmlbeans-5.3.0.jar
jar Version :
Required Version : XMLBeans 2.3.0 or later
********************************************************************************
POI Core Library file:/D:/tomcat/tomcat-8.5_servertest/webapps/ibsheet8_demo_test/WEB-INF/lib/poi-5.4.1.jar
POI OOXML Library file:/D:/tomcat/tomcat-8.5_servertest/webapps/ibsheet8_demo_test/WEB-INF/lib/poi-ooxml-5.4.1.jar
또한 다운로드 처리 jsp의 IBSheetDown에 setLog(true)를 설정하면, 실제 다운로드가 실행될 때 서버 콘솔에 처리 로그(처리 시점의 JVM 메모리, 파일 정보, 소요 시간 등)가 출력됩니다. 로그에 excel mode=POI 가 보이면 POI 라이브러리가 정상 로드되어 동작 중인 것입니다.
Debug: ibsheet8-x.x.X
Debug: Down2Excel start...
Debug: [2026.08.11 12:50:43] Max:7,574,388,736, Total:3,020,947,456, Free:697,302,304, Used:2,323,645,152
Debug: fileName=Excel.xlsx, fileType=xlsx
Debug: excel mode=POI
Debug: ## 전문분석 소요시간 : 0.002초
Debug: ## 다운로드 총 소요시간 : 0.003초
Debug: Down2Excel End...
| product | version | desc |
|---|---|---|
| core | 8.0.0.0 | 기능 추가 |
| core | 8.1.0.85 | Down2Hwpx 기능 추가 |
| excel | 1.1.2 | Down2Hwpx 기능 추가 |
| jar | 1.0.0 | Down2Hwpx 기능 추가 |