easyexcel 使用说明

旧城等待, 2023-03-01 06:07 252阅读 0赞

easyexcel 使用说明

********************

导入 jar 包

  1. <dependency>
  2. <groupId>com.alibaba</groupId>
  3. <artifactId>easyexcel</artifactId>
  4. <version>2.2.6</version>
  5. </dependency>

********************

相关类与接口

EasyExcel

  1. public class EasyExcel extends EasyExcelFactory {
  2. public EasyExcel() {
  3. }
  4. }

EasyExcelFactory

  1. public class EasyExcelFactory {
  2. ************
  3. 构造函数
  4. public EasyExcelFactory() {
  5. }
  6. ************
  7. write 方法
  8. public static ExcelWriterBuilder write() {
  9. public static ExcelWriterBuilder write(File file) {
  10. public static ExcelWriterBuilder write(File file, Class head) {
  11. public static ExcelWriterBuilder write(String pathName) {
  12. public static ExcelWriterBuilder write(String pathName, Class head) {
  13. public static ExcelWriterBuilder write(OutputStream outputStream) {
  14. public static ExcelWriterBuilder write(OutputStream outputStream, Class head) {
  15. public static ExcelWriterSheetBuilder writerSheet() {
  16. public static ExcelWriterSheetBuilder writerSheet(Integer sheetNo) {
  17. public static ExcelWriterSheetBuilder writerSheet(String sheetName) {
  18. public static ExcelWriterSheetBuilder writerSheet(Integer sheetNo, String sheetName) {
  19. public static ExcelWriterTableBuilder writerTable() {
  20. public static ExcelWriterTableBuilder writerTable(Integer tableNo) {
  21. //使用table写入
  22. ************
  23. read 读取
  24. public static ExcelReaderBuilder read() {
  25. public static ExcelReaderBuilder read(File file) {
  26. public static ExcelReaderBuilder read(File file, ReadListener readListener) {
  27. public static ExcelReaderBuilder read(File file, Class head, ReadListener readListener) {
  28. public static ExcelReaderBuilder read(String pathName) {
  29. public static ExcelReaderBuilder read(String pathName, ReadListener readListener) {
  30. public static ExcelReaderBuilder read(String pathName, Class head, ReadListener readListener) {
  31. public static ExcelReaderBuilder read(InputStream inputStream) {
  32. public static ExcelReaderBuilder read(InputStream inputStream, ReadListener readListener) {
  33. public static ExcelReaderBuilder read(InputStream inputStream, Class head, ReadListener readListener) {
  34. public static ExcelReaderSheetBuilder readSheet() {
  35. public static ExcelReaderSheetBuilder readSheet(Integer sheetNo) {
  36. public static ExcelReaderSheetBuilder readSheet(String sheetName) {
  37. public static ExcelReaderSheetBuilder readSheet(Integer sheetNo, String sheetName) {

*****************

write 操作

ExcelWriterBuilder

  1. public class ExcelWriterBuilder extends AbstractExcelWriterParameterBuilder<ExcelWriterBuilder, WriteWorkbook> {
  2. private WriteWorkbook writeWorkbook = new WriteWorkbook();
  3. ********
  4. 构造函数
  5. public ExcelWriterBuilder() {
  6. }
  7. ********
  8. 普通方法
  9. public ExcelWriterBuilder file(OutputStream outputStream) {
  10. public ExcelWriterBuilder file(File outputFile) {
  11. public ExcelWriterBuilder file(String outputPathName) {
  12. public ExcelWriterBuilder withTemplate(InputStream templateInputStream) {
  13. public ExcelWriterBuilder withTemplate(File templateFile) {
  14. public ExcelWriterBuilder withTemplate(String pathName) {
  15. public ExcelWriterSheetBuilder sheet() {
  16. public ExcelWriterSheetBuilder sheet(Integer sheetNo) {
  17. public ExcelWriterSheetBuilder sheet(String sheetName) {
  18. public ExcelWriterSheetBuilder sheet(Integer sheetNo, String sheetName) {
  19. public ExcelWriterBuilder autoCloseStream(Boolean autoCloseStream) {
  20. public ExcelWriterBuilder password(String password) {
  21. public ExcelWriterBuilder inMemory(Boolean inMemory) {
  22. public ExcelWriterBuilder writeExcelOnException(Boolean writeExcelOnException) {
  23. public ExcelWriterBuilder excelType(ExcelTypeEnum excelType) {
  24. public ExcelWriter build() {
  25. protected WriteWorkbook parameter() {

AbstractExcelWriterParameterBuilder

  1. public abstract class AbstractExcelWriterParameterBuilder<T extends AbstractExcelWriterParameterBuilder, C extends WriteBasicParameter> extends AbstractParameterBuilder<T, C> {
  2. public AbstractExcelWriterParameterBuilder() {
  3. }
  4. public T excludeColumnIndexes(Collection<Integer> excludeColumnIndexes) {
  5. public T excludeColumnFiledNames(Collection<String> excludeColumnFiledNames) {
  6. //不输出的列
  7. public T includeColumnIndexes(Collection<Integer> includeColumnIndexes) {
  8. public T includeColumnFiledNames(Collection<String> includeColumnFiledNames) {
  9. //输出的列
  10. public T relativeHeadRowIndex(Integer relativeHeadRowIndex) {
  11. public T needHead(Boolean needHead) {
  12. public T registerWriteHandler(WriteHandler writeHandler) {
  13. public T useDefaultStyle(Boolean useDefaultStyle) {
  14. public T automaticMergeHead(Boolean automaticMergeHead) {

AbstractParameterBuilder

  1. public abstract class AbstractParameterBuilder<T extends AbstractParameterBuilder, C extends BasicParameter> {
  2. public AbstractParameterBuilder() {
  3. }
  4. public T head(List<List<String>> head) {
  5. public T head(Class clazz) { //设置head
  6. public T registerConverter(Converter converter) { //注册转换器
  7. public T use1904windowing(Boolean use1904windowing) {
  8. public T locale(Locale locale) {
  9. public T autoTrim(Boolean autoTrim) {
  10. protected T self() {
  11. protected abstract C parameter();

ExcelWriterSheetBuilder

  1. public class ExcelWriterSheetBuilder extends AbstractExcelWriterParameterBuilder<ExcelWriterSheetBuilder, WriteSheet> {
  2. private ExcelWriter excelWriter;
  3. private WriteSheet writeSheet = new WriteSheet();
  4. *********
  5. 构造函数
  6. public ExcelWriterSheetBuilder() {
  7. public ExcelWriterSheetBuilder(ExcelWriter excelWriter) {
  8. *********
  9. 普通方法
  10. public WriteSheet build() {
  11. public void doWrite(List data) {
  12. public void doFill(Object data) {
  13. public void doFill(Object data, FillConfig fillConfig) {
  14. public ExcelWriterSheetBuilder sheetNo(Integer sheetNo) { //写入表单的序列号
  15. public ExcelWriterSheetBuilder sheetName(String sheetName) { //写入表单的名称
  16. public ExcelWriterTableBuilder table() {
  17. public ExcelWriterTableBuilder table(Integer tableNo) {
  18. protected WriteSheet parameter() {

ExcelWriterTableBuilder:使用table写入

  1. public class ExcelWriterTableBuilder extends AbstractExcelWriterParameterBuilder<ExcelWriterTableBuilder, WriteTable> {
  2. private ExcelWriter excelWriter;
  3. private WriteSheet writeSheet;
  4. private WriteTable writeTable;
  5. public ExcelWriterTableBuilder() {
  6. this.writeTable = new WriteTable();
  7. }
  8. public ExcelWriterTableBuilder(ExcelWriter excelWriter, WriteSheet writeSheet) {
  9. this.excelWriter = excelWriter;
  10. this.writeSheet = writeSheet;
  11. this.writeTable = new WriteTable();
  12. }
  13. public ExcelWriterTableBuilder tableNo(Integer tableNo) {
  14. this.writeTable.setTableNo(tableNo);
  15. return this;
  16. }
  17. public WriteTable build() {
  18. return this.writeTable;
  19. }
  20. public void doWrite(List data) {
  21. if (this.excelWriter == null) {
  22. throw new ExcelGenerateException("Must use 'EasyExcelFactory.write().sheet().table()' to call this method");
  23. } else {
  24. this.excelWriter.write(data, this.writeSheet, this.build());
  25. this.excelWriter.finish();
  26. }
  27. }
  28. protected WriteTable parameter() {
  29. return this.writeTable;
  30. }
  31. }

ExcelWriter

  1. public class ExcelWriter {
  2. private static final Logger LOGGER = LoggerFactory.getLogger(ExcelWriter.class);
  3. private ExcelBuilder excelBuilder;
  4. public ExcelWriter(WriteWorkbook writeWorkbook) {
  5. public ExcelWriter write(List data, WriteSheet writeSheet) {
  6. public ExcelWriter write(List data, WriteSheet writeSheet, WriteTable writeTable) {
  7. public ExcelWriter fill(Object data, WriteSheet writeSheet) {
  8. public ExcelWriter fill(Object data, FillConfig fillConfig, WriteSheet writeSheet) {
  9. public void finish() {
  10. public WriteContext writeContext() {
  11. protected void finalize() {

WriteSheet

  1. public class WriteSheet extends WriteBasicParameter {
  2. private Integer sheetNo;
  3. private String sheetName;
  4. public WriteSheet() {
  5. }
  6. public void setSheetNo(Integer sheetNo) {
  7. public void setSheetName(String sheetName) {
  8. public void setColumnWidthMap(Map<Integer, Integer> columnWidthMap) {
  9. public void setTableStyle(TableStyle tableStyle) {
  10. public Integer getSheetNo() {
  11. public String getSheetName() {
  12. public TableStyle getTableStyle() {
  13. public Map<Integer, Integer> getColumnWidthMap() {
  14. public String toString() {

WriteTable

  1. public class WriteTable extends WriteBasicParameter {
  2. private Integer tableNo;
  3. public WriteTable() {
  4. }
  5. public Integer getTableNo() {
  6. return this.tableNo;
  7. }
  8. public void setTableNo(Integer tableNo) {
  9. this.tableNo = tableNo;
  10. }
  11. public TableStyle getTableStyle() {
  12. return this.tableStyle;
  13. }
  14. public void setTableStyle(TableStyle tableStyle) {
  15. this.tableStyle = tableStyle;
  16. }
  17. }

WriteBasicParameter

  1. public class WriteBasicParameter extends BasicParameter {
  2. private Integer relativeHeadRowIndex;
  3. private Boolean needHead;
  4. private List<WriteHandler> customWriteHandlerList = new ArrayList();
  5. private Boolean useDefaultStyle;
  6. private Boolean automaticMergeHead;
  7. private Collection<Integer> excludeColumnIndexes;
  8. private Collection<String> excludeColumnFiledNames;
  9. private Collection<Integer> includeColumnIndexes;
  10. private Collection<String> includeColumnFiledNames;
  11. public WriteBasicParameter() {
  12. }
  13. public void setExcludeColumnIndexes(Collection<Integer> excludeColumnIndexes) {
  14. public void setExcludeColumnFiledNames(Collection<String> excludeColumnFiledNames) {
  15. public Collection<Integer> getExcludeColumnIndexes() {
  16. public Collection<String> getExcludeColumnFiledNames() {
  17. public void setIncludeColumnIndexes(Collection<Integer> includeColumnIndexes) {
  18. public void setIncludeColumnFiledNames(Collection<String> includeColumnFiledNames) {
  19. public Collection<Integer> getIncludeColumnIndexes() {
  20. public Collection<String> getIncludeColumnFiledNames() {
  21. public void setNeedHead(Boolean needHead) {
  22. public void setUseDefaultStyle(Boolean useDefaultStyle) {
  23. public void setAutomaticMergeHead(Boolean automaticMergeHead) {
  24. public void setRelativeHeadRowIndex(Integer relativeHeadRowIndex) {
  25. public void setCustomWriteHandlerList(List<WriteHandler> customWriteHandlerList) {
  26. public Boolean getNeedHead() {
  27. public Boolean getUseDefaultStyle() {
  28. public Boolean getAutomaticMergeHead() {
  29. public Integer getRelativeHeadRowIndex() {
  30. public List<WriteHandler> getCustomWriteHandlerList() {

BasicParameter

  1. public class BasicParameter {
  2. private List<List<String>> head;
  3. private Class clazz;
  4. private List<Converter> customConverterList;
  5. private Boolean autoTrim;
  6. private Boolean use1904windowing;
  7. private Locale locale;
  8. private Boolean useScientificFormat;
  9. public BasicParameter() {
  10. }
  11. public void setClazz(Class clazz) {
  12. public void setHead(List<List<String>> head) {
  13. public Class getClazz() {
  14. public List<List<String>> getHead() {
  15. public List<Converter> getCustomConverterList() {
  16. public void setCustomConverterList(List<Converter> customConverterList) {
  17. public void setLocale(Locale locale) {
  18. public void setAutoTrim(Boolean autoTrim) {
  19. public void setUse1904windowing(Boolean use1904windowing) {
  20. public void setUseScientificFormat(Boolean useScientificFormat) {
  21. public Locale getLocale() {
  22. public Boolean getAutoTrim() {
  23. public Boolean getUse1904windowing() {
  24. public Boolean getUseScientificFormat() {

*****************

read 操作

ExcelReaderBuilder

  1. public class ExcelReaderBuilder extends AbstractExcelReaderParameterBuilder<ExcelReaderBuilder, ReadWorkbook> {
  2. private ReadWorkbook readWorkbook = new ReadWorkbook();
  3. public ExcelReaderBuilder() {
  4. }
  5. public ExcelReaderBuilder file(InputStream inputStream) {
  6. public ExcelReaderBuilder file(File file) {
  7. public ExcelReaderBuilder file(String pathName) {
  8. public ExcelReaderSheetBuilder sheet() {
  9. public ExcelReaderSheetBuilder sheet(Integer sheetNo) {
  10. public ExcelReaderSheetBuilder sheet(String sheetName) {
  11. public ExcelReaderSheetBuilder sheet(Integer sheetNo, String sheetName) {
  12. public void doReadAll() {
  13. public <T> List<T> doReadAllSync() {
  14. public ExcelReaderBuilder excelType(ExcelTypeEnum excelType) {
  15. public ExcelReaderBuilder mandatoryUseInputStream(Boolean mandatoryUseInputStream) {
  16. public ExcelReaderBuilder autoCloseStream(Boolean autoCloseStream) {
  17. public ExcelReaderBuilder ignoreEmptyRow(Boolean ignoreEmptyRow) {
  18. public ExcelReaderBuilder customObject(Object customObject) {
  19. public ExcelReaderBuilder readCache(ReadCache readCache) {
  20. public ExcelReaderBuilder readCacheSelector(ReadCacheSelector readCacheSelector) {
  21. public ExcelReaderBuilder password(String password) {
  22. public ExcelReaderBuilder xlsxSAXParserFactoryName(String xlsxSAXParserFactoryName) {
  23. public ExcelReaderBuilder extraRead(CellExtraTypeEnum extraType) {
  24. public ExcelReaderBuilder useDefaultListener(Boolean useDefaultListener) {
  25. public ExcelReader build() {
  26. protected ReadWorkbook parameter() {

ExcelReaderSheetBuilder

  1. public class ExcelReaderSheetBuilder extends AbstractExcelReaderParameterBuilder<ExcelReaderSheetBuilder, ReadSheet> {
  2. private ExcelReader excelReader;
  3. private ReadSheet readSheet = new ReadSheet();
  4. public ExcelReaderSheetBuilder() {
  5. public ExcelReaderSheetBuilder(ExcelReader excelReader) {
  6. public ExcelReaderSheetBuilder sheetNo(Integer sheetNo) {
  7. public ExcelReaderSheetBuilder sheetName(String sheetName) {
  8. public ReadSheet build() {
  9. public void doRead() {
  10. public <T> List<T> doReadSync() {
  11. protected ReadSheet parameter() {

AbstractExcelReaderParameterBuilder

  1. public abstract class AbstractExcelReaderParameterBuilder<T extends AbstractExcelReaderParameterBuilder, C extends ReadBasicParameter> extends AbstractParameterBuilder<T, C> {
  2. public AbstractExcelReaderParameterBuilder() {
  3. }
  4. public T headRowNumber(Integer headRowNumber) {
  5. public T useScientificFormat(Boolean useScientificFormat) {
  6. public T registerReadListener(ReadListener readListener) {

AnalysisEventListener:监听器

  1. public abstract class AnalysisEventListener<T> implements ReadListener<T> {
  2. public AnalysisEventListener() {
  3. }
  4. public void invokeHead(Map<Integer, CellData> headMap, AnalysisContext context) {
  5. this.invokeHeadMap(ConverterUtils.convertToStringMap(headMap, context), context);
  6. }
  7. public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
  8. }
  9. public void extra(CellExtra extra, AnalysisContext context) {
  10. }
  11. public void onException(Exception exception, AnalysisContext context) throws Exception {
  12. throw exception;
  13. }
  14. public boolean hasNext(AnalysisContext context) {
  15. return true;
  16. }
  17. }

ReadListener

  1. public interface ReadListener<T> extends Listener {
  2. void invoke(T var1, AnalysisContext var2);
  3. void invokeHead(Map<Integer, CellData> var1, AnalysisContext var2);
  4. boolean hasNext(AnalysisContext var1);
  5. void doAfterAllAnalysed(AnalysisContext var1);
  6. void extra(CellExtra var1, AnalysisContext var2);
  7. void onException(Exception var1, AnalysisContext var2) throws Exception;
  8. }

Listener

  1. public interface Listener {
  2. }

ExcelReader

  1. public class ExcelReader {
  2. private static final Logger LOGGER = LoggerFactory.getLogger(ExcelReader.class);
  3. private ExcelAnalyser excelAnalyser;
  4. public ExcelReader(ReadWorkbook readWorkbook) {
  5. public void readAll() {
  6. public ExcelReader read(ReadSheet... readSheet) {
  7. public ExcelReader read(List<ReadSheet> readSheetList) {
  8. public AnalysisContext analysisContext() {
  9. public ExcelReadExecutor excelExecutor() {
  10. public void finish() {
  11. protected void finalize() {

ReadSheet

  1. public class ReadSheet extends ReadBasicParameter {
  2. private Integer sheetNo;
  3. private String sheetName;
  4. public ReadSheet() {
  5. public ReadSheet(Integer sheetNo) {
  6. public ReadSheet(Integer sheetNo, String sheetName) {
  7. public void setSheetNo(Integer sheetNo) {
  8. public void setSheetName(String sheetName) {
  9. public Integer getSheetNo() {
  10. public String getSheetName() {
  11. public void copyBasicParameter(ReadSheet other) {
  12. public String toString() {

ReadBasicParameter

  1. public class ReadBasicParameter extends BasicParameter {
  2. private Integer headRowNumber;
  3. private List<ReadListener> customReadListenerList = new ArrayList();
  4. public ReadBasicParameter() {
  5. }
  6. public void setHeadRowNumber(Integer headRowNumber) {
  7. public void setCustomReadListenerList(List<ReadListener> customReadListenerList) {
  8. public Integer getHeadRowNumber() {
  9. public List<ReadListener> getCustomReadListenerList() {

********************

相关注解

  1. ![20200723171147101.png][]

*****************

format

@DateTimeFormat:标注在字段上,日期格式化

  1. @Target({ElementType.FIELD})
  2. @Retention(RetentionPolicy.RUNTIME)
  3. @Inherited
  4. public @interface DateTimeFormat {
  5. String value() default "";
  6. boolean use1904windowing() default false;
  7. }

@NumberFormat:标注在字段上,数字格式化

  1. @Target({ElementType.FIELD})
  2. @Retention(RetentionPolicy.RUNTIME)
  3. @Inherited
  4. public @interface NumberFormat {
  5. String value() default "";
  6. RoundingMode roundingMode() default RoundingMode.HALF_UP;
  7. }

*****************

write.style:输出样式注解

ColumnWidth:标注在类、字段上,设置列宽

  1. @Target({ElementType.FIELD, ElementType.TYPE})
  2. @Retention(RetentionPolicy.RUNTIME)
  3. @Inherited
  4. public @interface ColumnWidth {
  5. int value() default -1;
  6. }

HeadRowHeight:标注在类上,设置表头高度

  1. @Target({ElementType.TYPE})
  2. @Retention(RetentionPolicy.RUNTIME)
  3. @Inherited
  4. public @interface HeadRowHeight {
  5. short value() default -1;
  6. }

ContentRowHeight:标注在类上,设置内容列表高度

  1. @Target({ElementType.TYPE})
  2. @Retention(RetentionPolicy.RUNTIME)
  3. @Inherited
  4. public @interface ContentRowHeight {
  5. short value() default -1;
  6. }

*****************

其余注解

ExcelIgnore:标注在字段上,不输出

  1. @Target({ElementType.FIELD})
  2. @Retention(RetentionPolicy.RUNTIME)
  3. @Inherited
  4. public @interface ExcelIgnore {
  5. }

ExcelIgnoreUnannotated:标注在类上,忽略没有注释的字段

  1. @Target({ElementType.TYPE})
  2. @Retention(RetentionPolicy.RUNTIME)
  3. @Inherited
  4. public @interface ExcelIgnoreUnannotated {
  5. }

ExcelProperty:标注在字段上,设置顺序,名称,列索引

  1. @Target({ElementType.FIELD})
  2. @Retention(RetentionPolicy.RUNTIME)
  3. @Inherited
  4. public @interface ExcelProperty {
  5. String[] value() default {""};
  6. int index() default -1;
  7. int order() default 2147483647;
  8. Class<? extends Converter> converter() default AutoConverter.class;
  9. }

发表评论

表情:
评论列表 (有 0 条评论,252人围观)

还没有评论,来说两句吧...

相关阅读

    相关 EasyExcel如何使用

    EasyExcel是一个Java库,用于读写Excel文件。要使用EasyExcel,您需要在项目中添加依赖并导入必要的类。 依赖信息: <dependency>

    相关 EasyExcel的简单使用

    简介 读取execl文件中的内容添加数据,阿里巴巴提供的一个处理excel的工具 读取方式:一行一行读取加载到内存中,保证效率 excel写 ①引入依赖(注意

    相关 EasyExcel使用+踩雷

    1.导出的excel,点击数字类型格子里,数据会变科学计数法,并且丢位 这个问题后续会修复 超过一定长度的整型数据有问题。自己要解决 就用string去传入 2.[http

    相关 EasyExcel 使用记录

    使用的是阿里的 EasyExcel ,在读的时候出现NPE错误,追究一下 使用 EasyExcel 写excel的时候 api 非常简单好用,而在读的时候却发现有一些bu