forked from fanruan/easyexcel
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
2.2 KiB
89 lines
2.2 KiB
package com.alibaba.excel.read.builder; |
|
|
|
import java.util.List; |
|
|
|
import com.alibaba.excel.ExcelReader; |
|
import com.alibaba.excel.event.SyncReadListener; |
|
import com.alibaba.excel.exception.ExcelAnalysisException; |
|
import com.alibaba.excel.exception.ExcelGenerateException; |
|
import com.alibaba.excel.read.metadata.ReadSheet; |
|
|
|
/** |
|
* Build sheet |
|
* |
|
* @author Jiaju Zhuang |
|
*/ |
|
public class ExcelReaderSheetBuilder extends AbstractExcelReaderParameterBuilder<ExcelReaderSheetBuilder, ReadSheet> { |
|
private ExcelReader excelReader; |
|
/** |
|
* Sheet |
|
*/ |
|
private ReadSheet readSheet; |
|
|
|
public ExcelReaderSheetBuilder() { |
|
this.readSheet = new ReadSheet(); |
|
} |
|
|
|
public ExcelReaderSheetBuilder(ExcelReader excelReader) { |
|
this.readSheet = new ReadSheet(); |
|
this.excelReader = excelReader; |
|
} |
|
|
|
/** |
|
* Starting from 0 |
|
* |
|
* @param sheetNo |
|
* @return |
|
*/ |
|
public ExcelReaderSheetBuilder sheetNo(Integer sheetNo) { |
|
readSheet.setSheetNo(sheetNo); |
|
return this; |
|
} |
|
|
|
/** |
|
* sheet name |
|
* |
|
* @param sheetName |
|
* @return |
|
*/ |
|
public ExcelReaderSheetBuilder sheetName(String sheetName) { |
|
readSheet.setSheetName(sheetName); |
|
return this; |
|
} |
|
|
|
public ReadSheet build() { |
|
return readSheet; |
|
} |
|
|
|
/** |
|
* Sax read |
|
*/ |
|
public void doRead() { |
|
if (excelReader == null) { |
|
throw new ExcelGenerateException("Must use 'EasyExcelFactory.read().sheet()' to call this method"); |
|
} |
|
excelReader.read(build()); |
|
excelReader.finish(); |
|
} |
|
|
|
/** |
|
* Synchronous reads return results |
|
* |
|
* @return |
|
*/ |
|
public <T> List<T> doReadSync() { |
|
if (excelReader == null) { |
|
throw new ExcelAnalysisException("Must use 'EasyExcelFactory.read().sheet()' to call this method"); |
|
} |
|
SyncReadListener syncReadListener = new SyncReadListener(); |
|
registerReadListener(syncReadListener); |
|
excelReader.read(build()); |
|
excelReader.finish(); |
|
return (List<T>)syncReadListener.getList(); |
|
} |
|
|
|
@Override |
|
protected ReadSheet parameter() { |
|
return readSheet; |
|
} |
|
}
|
|
|