You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

140 lines
3.5 KiB

7 years ago
package com.alibaba.excel;
import com.alibaba.excel.metadata.BaseRowModel;
import com.alibaba.excel.metadata.Sheet;
import com.alibaba.excel.metadata.Table;
import com.alibaba.excel.parameter.GenerateParam;
7 years ago
import com.alibaba.excel.support.ExcelTypeEnum;
import com.alibaba.excel.write.ExcelBuilder;
import com.alibaba.excel.write.ExcelBuilderImpl;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
7 years ago
/**
*
* @author jipengfei
*/
public class ExcelWriter {
private ExcelBuilder excelBuilder;
/**
*
*
7 years ago
*/
public ExcelWriter(OutputStream outputStream, ExcelTypeEnum typeEnum) {
this(outputStream, typeEnum, true);
}
private Class<? extends BaseRowModel> objectClass;
private String sheetName;
public ExcelWriter(GenerateParam generateParam) {
this(generateParam.getOutputStream(), generateParam.getType(), true);
this.objectClass = generateParam.getClazz();
this.sheetName = generateParam.getSheetName();
}
7 years ago
/**
*
*
* @param outputStream
* @param typeEnum
7 years ago
*/
public ExcelWriter(OutputStream outputStream, ExcelTypeEnum typeEnum, boolean needHead) {
excelBuilder = new ExcelBuilderImpl();
excelBuilder.init(null, outputStream, typeEnum, needHead);
7 years ago
}
/**
*
* @param templateInputStream
* @param outputStream
* @param typeEnum
*/
public ExcelWriter(InputStream templateInputStream, OutputStream outputStream, ExcelTypeEnum typeEnum, boolean needHead) {
excelBuilder = new ExcelBuilderImpl();
excelBuilder.init(templateInputStream,outputStream, typeEnum, needHead);
}
/**
*
* @param data
* @param sheet
* @return this
7 years ago
*/
public ExcelWriter write(List<? extends BaseRowModel> data, Sheet sheet) {
excelBuilder.addContent(data, sheet);
return this;
}
//public Sheet(int sheetNo, int headLineMun, Class<? extends BaseRowModel> clazz, String sheetName,
// List<List<String>> head) {
// this.sheetNo = sheetNo;
// this.clazz = clazz;
// this.headLineMun = headLineMun;
// this.sheetName = sheetName;
// this.head = head;
//}
@Deprecated
public ExcelWriter write(List data) {
if (objectClass != null) {
return this.write(data,new Sheet(1,0,objectClass));
}else {
return this.write0(data,new Sheet(1,0,objectClass));
}
}
7 years ago
/**
*
*
* @param data
* @param sheet
* @return this
7 years ago
*/
public ExcelWriter write1(List<List<Object>> data, Sheet sheet) {
7 years ago
excelBuilder.addContent(data, sheet);
return this;
}
/**
*
* @param data
* @param sheet
* @return this
7 years ago
*/
public ExcelWriter write0(List<List<String>> data, Sheet sheet) {
excelBuilder.addContent(data, sheet);
return this;
}
7 years ago
public ExcelWriter write(List<? extends BaseRowModel> data, Sheet sheet, Table table) {
excelBuilder.addContent(data, sheet, table);
return this;
}
7 years ago
public ExcelWriter write0(List<List<String>> data, Sheet sheet, Table table) {
excelBuilder.addContent(data, sheet, table);
return this;
}
public ExcelWriter write1(List<List<Object>> data, Sheet sheet, Table table) {
excelBuilder.addContent(data, sheet, table);
return this;
}
7 years ago
public void finish() {
excelBuilder.finish();
}
}