mirror of https://github.com/alibaba/easyexcel
Jiaju Zhuang
5 years ago
35 changed files with 618 additions and 647 deletions
@ -0,0 +1,93 @@
|
||||
package com.alibaba.excel.metadata; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
import java.util.Locale; |
||||
|
||||
import com.alibaba.excel.converters.Converter; |
||||
|
||||
/** |
||||
* ExcelBuilder |
||||
* |
||||
* @author Jiaju Zhuang |
||||
*/ |
||||
public abstract class AbstractParameterBuilder<T extends AbstractParameterBuilder, C extends BasicParameter> { |
||||
/** |
||||
* You can only choose one of the {@link #head(List)} and {@link #head(Class)} |
||||
* |
||||
* @param head |
||||
* @return |
||||
*/ |
||||
public T head(List<List<String>> head) { |
||||
parameter().setHead(head); |
||||
return self(); |
||||
} |
||||
|
||||
/** |
||||
* You can only choose one of the {@link #head(List)} and {@link #head(Class)} |
||||
* |
||||
* @param clazz |
||||
* @return |
||||
*/ |
||||
public T head(Class clazz) { |
||||
parameter().setClazz(clazz); |
||||
return self(); |
||||
} |
||||
|
||||
/** |
||||
* Custom type conversions override the default. |
||||
* |
||||
* @param converter |
||||
* @return |
||||
*/ |
||||
public T registerConverter(Converter converter) { |
||||
if (parameter().getCustomConverterList() == null) { |
||||
parameter().setCustomConverterList(new ArrayList<Converter>()); |
||||
} |
||||
parameter().getCustomConverterList().add(converter); |
||||
return self(); |
||||
} |
||||
|
||||
/** |
||||
* true if date uses 1904 windowing, or false if using 1900 date windowing. |
||||
* |
||||
* default is false |
||||
* |
||||
* @param use1904windowing |
||||
* @return |
||||
*/ |
||||
public T use1904windowing(Boolean use1904windowing) { |
||||
parameter().setUse1904windowing(use1904windowing); |
||||
return self(); |
||||
} |
||||
|
||||
/** |
||||
* A <code>Locale</code> object represents a specific geographical, political, or cultural region. This parameter is |
||||
* used when formatting dates and numbers. |
||||
* |
||||
* @param locale |
||||
* @return |
||||
*/ |
||||
public T locale(Locale locale) { |
||||
parameter().setLocale(locale); |
||||
return self(); |
||||
} |
||||
|
||||
/** |
||||
* Automatic trim includes sheet name and content |
||||
* |
||||
* @param autoTrim |
||||
* @return |
||||
*/ |
||||
public T autoTrim(Boolean autoTrim) { |
||||
parameter().setAutoTrim(autoTrim); |
||||
return self(); |
||||
} |
||||
|
||||
@SuppressWarnings("unchecked") |
||||
protected T self() { |
||||
return (T)this; |
||||
} |
||||
|
||||
protected abstract C parameter(); |
||||
} |
@ -0,0 +1,47 @@
|
||||
package com.alibaba.excel.read.builder; |
||||
|
||||
import java.util.ArrayList; |
||||
|
||||
import com.alibaba.excel.metadata.AbstractParameterBuilder; |
||||
import com.alibaba.excel.read.listener.ReadListener; |
||||
import com.alibaba.excel.read.metadata.ReadBasicParameter; |
||||
|
||||
/** |
||||
* Build ExcelBuilder |
||||
* |
||||
* @author Jiaju Zhuang |
||||
*/ |
||||
public abstract class AbstractExcelReaderParameterBuilder<T extends AbstractExcelReaderParameterBuilder, |
||||
C extends ReadBasicParameter> extends AbstractParameterBuilder<T, C> { |
||||
/** |
||||
* Count the number of added heads when read sheet. |
||||
* |
||||
* <p> |
||||
* 0 - This Sheet has no head ,since the first row are the data |
||||
* <p> |
||||
* 1 - This Sheet has one row head , this is the default |
||||
* <p> |
||||
* 2 - This Sheet has two row head ,since the third row is the data |
||||
* |
||||
* @param headRowNumber |
||||
* @return |
||||
*/ |
||||
public T headRowNumber(Integer headRowNumber) { |
||||
parameter().setHeadRowNumber(headRowNumber); |
||||
return self(); |
||||
} |
||||
|
||||
/** |
||||
* Custom type listener run after default |
||||
* |
||||
* @param readListener |
||||
* @return |
||||
*/ |
||||
public T registerReadListener(ReadListener readListener) { |
||||
if (parameter().getCustomReadListenerList() == null) { |
||||
parameter().setCustomReadListenerList(new ArrayList<ReadListener>()); |
||||
} |
||||
parameter().getCustomReadListenerList().add(readListener); |
||||
return self(); |
||||
} |
||||
} |
@ -1,14 +0,0 @@
|
||||
package com.alibaba.excel.util; |
||||
|
||||
/** |
||||
* Thread local cache in the current tool class. |
||||
* |
||||
* @author Jiaju Zhuang |
||||
**/ |
||||
public interface ThreadLocalCachedUtils { |
||||
|
||||
/** |
||||
* Remove remove thread local cached. |
||||
*/ |
||||
void removeThreadLocalCache(); |
||||
} |
@ -0,0 +1,104 @@
|
||||
package com.alibaba.excel.write.builder; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.Collection; |
||||
|
||||
import com.alibaba.excel.metadata.AbstractParameterBuilder; |
||||
import com.alibaba.excel.write.handler.WriteHandler; |
||||
import com.alibaba.excel.write.metadata.WriteBasicParameter; |
||||
|
||||
/** |
||||
* Build ExcelBuilder |
||||
* |
||||
* @author Jiaju Zhuang |
||||
*/ |
||||
public abstract class AbstractExcelWriterParameterBuilder<T extends AbstractExcelWriterParameterBuilder, |
||||
C extends WriteBasicParameter> extends AbstractParameterBuilder<T, C> { |
||||
/** |
||||
* Writes the head relative to the existing contents of the sheet. Indexes are zero-based. |
||||
* |
||||
* @param relativeHeadRowIndex |
||||
* @return |
||||
*/ |
||||
public T relativeHeadRowIndex(Integer relativeHeadRowIndex) { |
||||
parameter().setRelativeHeadRowIndex(relativeHeadRowIndex); |
||||
return self(); |
||||
} |
||||
|
||||
/** |
||||
* Need Head |
||||
*/ |
||||
public T needHead(Boolean needHead) { |
||||
parameter().setNeedHead(needHead); |
||||
return self(); |
||||
} |
||||
|
||||
/** |
||||
* Custom write handler |
||||
* |
||||
* @param writeHandler |
||||
* @return |
||||
*/ |
||||
public T registerWriteHandler(WriteHandler writeHandler) { |
||||
if (parameter().getCustomWriteHandlerList() == null) { |
||||
parameter().setCustomWriteHandlerList(new ArrayList<WriteHandler>()); |
||||
} |
||||
parameter().getCustomWriteHandlerList().add(writeHandler); |
||||
return self(); |
||||
} |
||||
|
||||
/** |
||||
* Use the default style.Default is true. |
||||
* |
||||
* @param useDefaultStyle |
||||
* @return |
||||
*/ |
||||
public T useDefaultStyle(Boolean useDefaultStyle) { |
||||
parameter().setUseDefaultStyle(useDefaultStyle); |
||||
return self(); |
||||
} |
||||
|
||||
/** |
||||
* Whether to automatically merge headers.Default is true. |
||||
* |
||||
* @param automaticMergeHead |
||||
* @return |
||||
*/ |
||||
public T automaticMergeHead(Boolean automaticMergeHead) { |
||||
parameter().setAutomaticMergeHead(automaticMergeHead); |
||||
return self(); |
||||
} |
||||
|
||||
/** |
||||
* Ignore the custom columns. |
||||
*/ |
||||
public T excludeColumnIndexes(Collection<Integer> excludeColumnIndexes) { |
||||
parameter().setExcludeColumnIndexes(excludeColumnIndexes); |
||||
return self(); |
||||
} |
||||
|
||||
/** |
||||
* Ignore the custom columns. |
||||
*/ |
||||
public T excludeColumnFiledNames(Collection<String> excludeColumnFiledNames) { |
||||
parameter().setExcludeColumnFiledNames(excludeColumnFiledNames); |
||||
return self(); |
||||
} |
||||
|
||||
/** |
||||
* Only output the custom columns. |
||||
*/ |
||||
public T includeColumnIndexes(Collection<Integer> includeColumnIndexes) { |
||||
parameter().setIncludeColumnIndexes(includeColumnIndexes); |
||||
return self(); |
||||
} |
||||
|
||||
/** |
||||
* Only output the custom columns. |
||||
*/ |
||||
public T includeColumnFiledNames(Collection<String> includeColumnFiledNames) { |
||||
parameter().setIncludeColumnFiledNames(includeColumnFiledNames); |
||||
return self(); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,15 @@
|
||||
package com.alibaba.easyexcel.test.temp.simple; |
||||
|
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* TODO |
||||
* |
||||
* @author Jiaju Zhuang |
||||
**/ |
||||
@Data |
||||
public class JsonData { |
||||
private String SS1; |
||||
private String sS2; |
||||
private String ss3; |
||||
} |
@ -0,0 +1,13 @@
|
||||
package com.alibaba.easyexcel.test.temp.simple; |
||||
|
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* write data |
||||
* |
||||
* @author Jiaju Zhuang |
||||
**/ |
||||
@Data |
||||
public class WriteData { |
||||
private float f; |
||||
} |
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue