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

com.alibaba.excel.read.builder.ExcelReaderBuilder Maven / Gradle / Ivy

There is a newer version: 4.0.3
Show newest version
package com.alibaba.excel.read.builder;

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

import javax.xml.parsers.SAXParserFactory;

import com.alibaba.excel.ExcelReader;
import com.alibaba.excel.cache.ReadCache;
import com.alibaba.excel.cache.selector.ReadCacheSelector;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.enums.CellExtraTypeEnum;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.excel.event.SyncReadListener;
import com.alibaba.excel.read.listener.ModelBuildEventListener;
import com.alibaba.excel.read.metadata.ReadWorkbook;
import com.alibaba.excel.support.ExcelTypeEnum;

/**
 * Build ExcelWriter
 *
 * @author Jiaju Zhuang
 */
public class ExcelReaderBuilder extends AbstractExcelReaderParameterBuilder {
    /**
     * Workbook
     */
    private ReadWorkbook readWorkbook;

    public ExcelReaderBuilder() {
        this.readWorkbook = new ReadWorkbook();
    }

    public ExcelReaderBuilder excelType(ExcelTypeEnum excelType) {
        readWorkbook.setExcelType(excelType);
        return this;
    }

    /**
     * Read InputStream
     * 

* If 'inputStream' and 'file' all not empty,file first */ public ExcelReaderBuilder file(InputStream inputStream) { readWorkbook.setInputStream(inputStream); return this; } /** * Read file *

* If 'inputStream' and 'file' all not empty,file first */ public ExcelReaderBuilder file(File file) { readWorkbook.setFile(file); return this; } /** * Read file *

* If 'inputStream' and 'file' all not empty,file first */ public ExcelReaderBuilder file(String pathName) { return file(new File(pathName)); } /** * Mandatory use 'inputStream' .Default is false. *

* if false,Will transfer 'inputStream' to temporary files to improve efficiency */ public ExcelReaderBuilder mandatoryUseInputStream(Boolean mandatoryUseInputStream) { readWorkbook.setMandatoryUseInputStream(mandatoryUseInputStream); return this; } /** * Default true * * @param autoCloseStream * @return */ public ExcelReaderBuilder autoCloseStream(Boolean autoCloseStream) { readWorkbook.setAutoCloseStream(autoCloseStream); return this; } /** * Ignore empty rows.Default is true. * * @param ignoreEmptyRow * @return */ public ExcelReaderBuilder ignoreEmptyRow(Boolean ignoreEmptyRow) { readWorkbook.setIgnoreEmptyRow(ignoreEmptyRow); return this; } /** * This object can be read in the Listener {@link AnalysisEventListener#invoke(Object, AnalysisContext)} * {@link AnalysisContext#getCustom()} * * @param customObject * @return */ public ExcelReaderBuilder customObject(Object customObject) { readWorkbook.setCustomObject(customObject); return this; } /** * A cache that stores temp data to save memory. * * @param readCache * @return */ public ExcelReaderBuilder readCache(ReadCache readCache) { readWorkbook.setReadCache(readCache); return this; } /** * Select the cache.Default use {@link com.alibaba.excel.cache.selector.SimpleReadCacheSelector} * * @param readCacheSelector * @return */ public ExcelReaderBuilder readCacheSelector(ReadCacheSelector readCacheSelector) { readWorkbook.setReadCacheSelector(readCacheSelector); return this; } /** * Whether the encryption * * @param password * @return */ public ExcelReaderBuilder password(String password) { readWorkbook.setPassword(password); return this; } /** * SAXParserFactory used when reading xlsx. *

* The default will automatically find. *

* Please pass in the name of a class ,like : "com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl" * * @see SAXParserFactory#newInstance() * @see SAXParserFactory#newInstance(String, ClassLoader) * @param xlsxSAXParserFactoryName * @return */ public ExcelReaderBuilder xlsxSAXParserFactoryName(String xlsxSAXParserFactoryName) { readWorkbook.setXlsxSAXParserFactoryName(xlsxSAXParserFactoryName); return this; } /** * Read some extra information, not by default * * @param extraType * extra information type * @return */ public ExcelReaderBuilder extraRead(CellExtraTypeEnum extraType) { if (readWorkbook.getExtraReadSet() == null) { readWorkbook.setExtraReadSet(new HashSet()); } readWorkbook.getExtraReadSet().add(extraType); return this; } /** * Whether to use the default listener, which is used by default. *

* The {@link ModelBuildEventListener} is loaded by default to convert the object. * * @param useDefaultListener * @return */ public ExcelReaderBuilder useDefaultListener(Boolean useDefaultListener) { readWorkbook.setUseDefaultListener(useDefaultListener); return this; } public ExcelReader build() { return new ExcelReader(readWorkbook); } public void doReadAll() { ExcelReader excelReader = build(); excelReader.readAll(); excelReader.finish(); } /** * Synchronous reads return results * * @return */ public List doReadAllSync() { SyncReadListener syncReadListener = new SyncReadListener(); registerReadListener(syncReadListener); ExcelReader excelReader = build(); excelReader.readAll(); excelReader.finish(); return (List)syncReadListener.getList(); } public ExcelReaderSheetBuilder sheet() { return sheet(null, null); } public ExcelReaderSheetBuilder sheet(Integer sheetNo) { return sheet(sheetNo, null); } public ExcelReaderSheetBuilder sheet(String sheetName) { return sheet(null, sheetName); } public ExcelReaderSheetBuilder sheet(Integer sheetNo, String sheetName) { ExcelReaderSheetBuilder excelReaderSheetBuilder = new ExcelReaderSheetBuilder(build()); if (sheetNo != null) { excelReaderSheetBuilder.sheetNo(sheetNo); } if (sheetName != null) { excelReaderSheetBuilder.sheetName(sheetName); } return excelReaderSheetBuilder; } @Override protected ReadWorkbook parameter() { return readWorkbook; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy