load(..), template(..) 추가

master
mjkhan21 9 months ago
parent 1b5e5993ff
commit 55b13dbd88

@ -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);
}
/** .

@ -2,6 +2,7 @@ package cokr.xit.base.docs.xls;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Collections;
import java.util.Date;
@ -24,6 +25,16 @@ import cokr.xit.foundation.Downloadable;
public class XLSWriter extends XLS {
private Set<Integer> trackWidths;
public XLSWriter template(InputStream input) {
load(input);
return this;
}
public XLSWriter template(File file) {
load(file);
return this;
}
@Override
public XLSWriter worksheet(int index) {
super.worksheet(index);

Loading…
Cancel
Save