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

com.ludii.excel.AbstractExcelImport Maven / Gradle / Ivy

There is a newer version: 1.1.0
Show newest version
package com.ludii.excel;

import com.ludii.excel.parse.CellValueTransform;
import com.ludii.excel.parse.DefaultExcelImportParse;
import com.ludii.excel.parse.ExcelFieldConfigParse;
import com.ludii.excel.parse.ExcelImportCellValueReader;

import java.io.InputStream;
import java.util.List;

/**
 * @author 陆迪
 * @date 2022/3/25
 */
public abstract class AbstractExcelImport implements ExcelImport {

    @Override
    public  List listData(InputStream inputStream, Class clazz) throws Exception {
        return this.listData(inputStream, clazz, 0, 0);
    }

    @Override
    public  List listData(InputStream inputStream, Class clazz, int dataColumnStartIndex) throws Exception {
        return this.listData(inputStream, clazz, dataColumnStartIndex, 0);
    }

    @Override
    public  List listData(InputStream inputStream, Class clazz, int dataColumnStartIndex, int sheetIndex) throws Exception {
        ExcelImportCellValueReader excelImportCellValueReader = this.getExcelImportCellValueReader(inputStream, dataColumnStartIndex, sheetIndex);
        ExcelFieldConfigParse excelFieldConfigParse = this.getExcelFieldConfigParse(clazz);

        return this.listData(excelImportCellValueReader, excelFieldConfigParse);
    }

    @Override
    public  List listData(InputStream inputStream, Class clazz, int dataColumnStartIndex, String sheetName) throws Exception {
        ExcelImportCellValueReader excelImportCellValueReader = this.getExcelImportCellValueReader(inputStream, dataColumnStartIndex, sheetName);
        ExcelFieldConfigParse excelFieldConfigParse = this.getExcelFieldConfigParse(clazz);
        return this.listData(excelImportCellValueReader, excelFieldConfigParse);
    }

    public  List listData(ExcelImportCellValueReader excelImportCellValueReader, ExcelFieldConfigParse excelFieldConfigParse)
            throws Exception {
        DefaultExcelImportParse importParse = new DefaultExcelImportParse<>(excelImportCellValueReader, excelFieldConfigParse, getCellValueTransform());
        try {
            return importParse.listData();
        } finally {
            excelImportCellValueReader.close();
        }
    }

    protected abstract ExcelImportCellValueReader getExcelImportCellValueReader(InputStream inputStream, int dataColumnStartIndex, int sheetIndex);

    protected abstract ExcelImportCellValueReader getExcelImportCellValueReader(InputStream inputStream, int dataColumnStartIndex, String sheetName);

    protected abstract  ExcelFieldConfigParse getExcelFieldConfigParse(Class clazz);

    protected abstract CellValueTransform getCellValueTransform();
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy