|
|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
package cokr.xit.base.docs.xls;
|
|
|
|
|
|
|
|
|
|
import java.io.File;
|
|
|
|
|
import java.io.FileInputStream;
|
|
|
|
|
import java.io.InputStream;
|
|
|
|
|
|
|
|
|
|
@ -7,6 +8,7 @@ import org.apache.poi.xssf.streaming.SXSSFCell;
|
|
|
|
|
import org.apache.poi.xssf.streaming.SXSSFRow;
|
|
|
|
|
import org.apache.poi.xssf.streaming.SXSSFSheet;
|
|
|
|
|
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
|
|
|
|
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
|
|
|
|
|
|
|
|
import cokr.xit.foundation.AbstractComponent;
|
|
|
|
|
|
|
|
|
|
@ -27,6 +29,33 @@ public abstract class XLS extends AbstractComponent {
|
|
|
|
|
/**현재 처리 중인 cell*/
|
|
|
|
|
protected SXSSFCell cell;
|
|
|
|
|
|
|
|
|
|
/**주어진 InputStream을 로드한다.
|
|
|
|
|
* @param <T> XLS 유형
|
|
|
|
|
* @param input InputStream
|
|
|
|
|
* @return 현재 XLS
|
|
|
|
|
*/
|
|
|
|
|
public <T extends XLS> T load(InputStream input) {
|
|
|
|
|
try {
|
|
|
|
|
workbook = newWorkbook(input);
|
|
|
|
|
return self();
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
throw runtimeException(e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**주어진 파일을 로드한다.
|
|
|
|
|
* @param <T> XLS 유형
|
|
|
|
|
* @param file 파일
|
|
|
|
|
* @return 현재 XLS
|
|
|
|
|
*/
|
|
|
|
|
public <T extends XLS> T load(File file) {
|
|
|
|
|
try {
|
|
|
|
|
return load(new FileInputStream(file));
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
throw runtimeException(e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**워크북을 반환한다.
|
|
|
|
|
* @return 워크북
|
|
|
|
|
*/
|
|
|
|
|
@ -35,7 +64,7 @@ public abstract class XLS extends AbstractComponent {
|
|
|
|
|
return workbook;
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
workbook = newWorkbook();
|
|
|
|
|
workbook = newWorkbook(null);
|
|
|
|
|
workbook.setCompressTempFiles(true);
|
|
|
|
|
return workbook;
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
@ -47,8 +76,10 @@ public abstract class XLS extends AbstractComponent {
|
|
|
|
|
* @return 워크북
|
|
|
|
|
* @throws Exception
|
|
|
|
|
*/
|
|
|
|
|
protected SXSSFWorkbook newWorkbook() throws Exception {
|
|
|
|
|
return new SXSSFWorkbook(rowAccessWindowSize);
|
|
|
|
|
protected SXSSFWorkbook newWorkbook(InputStream input) throws Exception {
|
|
|
|
|
return input == null ?
|
|
|
|
|
new SXSSFWorkbook(rowAccessWindowSize) :
|
|
|
|
|
new SXSSFWorkbook(new XSSFWorkbook(input), rowAccessWindowSize);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**지정한 인덱스의 워크시트를 반환한다.
|
|
|
|
|
|