사용자 도구

사이트 도구


java:poi

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
java:poi [2016/10/10 09:02]
kwon37xi [POI Memory Leak]
java:poi [2022/09/25 17:52] (현재)
kwon37xi
줄 1: 줄 1:
 ====== Apache POI MS Office Document ====== ====== Apache POI MS Office Document ======
   * http://poi.apache.org/   * http://poi.apache.org/
 +  * https://github.com/ozlerhakan/poiji
  
 ====== Excel ====== ====== Excel ======
  
 ===== SXSSFWorkbook ===== ===== SXSSFWorkbook =====
- 
   * [[http://poi.apache.org/apidocs/org/apache/poi/xssf/streaming/SXSSFWorkbook.html|SXSSFWorkbook]]를 사용하면 MS Office 2007 OOXML 형태로 엑셀 파일을 생성하며,   * [[http://poi.apache.org/apidocs/org/apache/poi/xssf/streaming/SXSSFWorkbook.html|SXSSFWorkbook]]를 사용하면 MS Office 2007 OOXML 형태로 엑셀 파일을 생성하며,
   * 생성중 데이터를 임시로 디스크에 기록하는 방식으로 메모리를 아낄 수 있다.   * 생성중 데이터를 임시로 디스크에 기록하는 방식으로 메모리를 아낄 수 있다.
줄 15: 줄 15:
   * [[http://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/WorkbookFactory.html|WorkbookFactory]]를 사용하면 읽으려는 엑셀 파일의 버전을 자동 판단하여 [[http://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFWorkbook.html|HSSFWorkbook (2007 이전 버전)]]과 [[http://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFWorkbook.html|XSSFWorkbook (2007 이후 버전)]] 객체를 생성하여 리턴한다.   * [[http://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/WorkbookFactory.html|WorkbookFactory]]를 사용하면 읽으려는 엑셀 파일의 버전을 자동 판단하여 [[http://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFWorkbook.html|HSSFWorkbook (2007 이전 버전)]]과 [[http://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFWorkbook.html|XSSFWorkbook (2007 이후 버전)]] 객체를 생성하여 리턴한다.
  
-====== POI Memory Leak ======+===== Sheet ===== 
 +==== Column Width ==== 
 +<code java> 
 +sheet.setColumnWidth(col, charCount * 256); // 넓이 지정하는 값이 문자의 256분의 1을 나타냄. 
 +</code> 
 + 
 + 
 +===== POI Memory Leak =====
 ''java.io.DeleteOnExitHook'' 객체가 잔뜩 생성되면서 Leak 이 되는 현상이 발생한다. 이는 POI 에서 임시로 생성한 파일을 JVM 종료시 삭제하라는 Hook 객체이다. ''java.io.DeleteOnExitHook'' 객체가 잔뜩 생성되면서 Leak 이 되는 현상이 발생한다. 이는 POI 에서 임시로 생성한 파일을 JVM 종료시 삭제하라는 Hook 객체이다.
  
줄 22: 줄 29:
 System.setProperty("poi.keep.tmp.files", ""); System.setProperty("poi.keep.tmp.files", "");
 </code> </code>
 +
 +단, 이 경우 임시로 생성한 파일이 삭제가 안되면서 디스크 용량이 증가할 가능성도 있으므로 임시 디렉토리를 잘 설정해줘야 할 것으로 보인다.
 +
 +===== 참조 =====
 +  * [[https://javatechonline.com/how-to-convert-excel-data-into-list-of-java-objects-poiji-api/|How To Convert Excel Data Into List Of Java Objects : Poiji API | Making Java Easy To Learn]]
 +
java/poi.1476059568.txt.gz · 마지막으로 수정됨: 2016/10/10 09:02 저자 kwon37xi