All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.gitee.ludii.excel.read.reader.WorkbookReaderBuilder Maven / Gradle / Ivy

package io.gitee.ludii.excel.read.reader;

import io.gitee.ludii.excel.annotation.DefaultReadFieldAnnotationConfigParser;
import io.gitee.ludii.excel.exceptions.ExcelException;
import io.gitee.ludii.excel.read.metadata.config.SheetReaderConfigMainDefinition;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;

/**
 * @author 陆迪
 * @date 2022/4/24
 */
public class WorkbookReaderBuilder {

    /**
     * 输入流
     */
    private InputStream inputStream;

    /**
     * 是否忽略空行.默认忽略
     */
    private boolean ignoreEmptyRow = true;


    public static WorkbookReaderBuilder read(String filePath) {
        return read(new File(filePath));
    }

    public static WorkbookReaderBuilder read(File file) {
        try {
            FileInputStream fileInputStream = new FileInputStream(file);
            return read(fileInputStream);
        } catch (FileNotFoundException fileNotFoundException) {
            throw new ExcelException("不存在的文件");
        }
    }

    public static WorkbookReaderBuilder read(InputStream inputStream) {
        WorkbookReaderBuilder workbookReaderBuilder = new WorkbookReaderBuilder();
        workbookReaderBuilder.inputStream = inputStream;

        return workbookReaderBuilder;
    }


    public WorkbookReaderBuilder ignoreEmptyRow(boolean ignoreEmptyRow) {
        this.ignoreEmptyRow = ignoreEmptyRow;
        return this;
    }


    protected WorkbookReader build() {
        return new WorkbookReader(inputStream, ignoreEmptyRow);
    }

    public  SheetReaderBuilder sheetReaderConfigMainDefinition(SheetReaderConfigMainDefinition sheetReaderConfigMainDefinition) {
        return new SheetReaderBuilder<>(this, sheetReaderConfigMainDefinition);
    }

    public  SheetReaderBuilder sheetReaderConfigMainDefinition(Class clazz) {
        DefaultReadFieldAnnotationConfigParser defaultReadFieldAnnotationConfigParser = new DefaultReadFieldAnnotationConfigParser();
        return new SheetReaderBuilder<>(this, defaultReadFieldAnnotationConfigParser.parse(clazz));
    }


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy