Package com.github.javaxcel.in
Class AbstractExcelReader<W extends org.apache.poi.ss.usermodel.Workbook,T>
java.lang.Object
com.github.javaxcel.in.AbstractExcelReader<W,T>
- All Implemented Interfaces:
ExcelReader<W,T>
- Direct Known Subclasses:
MapReader,ModelReader
public abstract class AbstractExcelReader<W extends org.apache.poi.ss.usermodel.Workbook,T> extends Object implements ExcelReader<W,T>
Abstract excel reader
-
Field Summary
Fields Modifier and Type Field Description protected static org.apache.poi.ss.usermodel.DataFormatterdataFormatterFormatter that stringifies the value in a cell withFormulaEvaluator.protected org.apache.poi.ss.usermodel.FormulaEvaluatorformulaEvaluatorEvaluator that evaluates the formula in a cell.protected intlimitLimitation of reading rows.protected intnumOfModelsReadTotal number of models read byAbstractExcelReader.protected WworkbookApache POI workbook. -
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractExcelReader(W workbook) -
Method Summary
Modifier and Type Method Description protected voidafterRead(List<T> list)protected voidbeforeRead(List<T> list)protected voidbeforeReadModels(org.apache.poi.ss.usermodel.Sheet sheet)protected abstract StringgetColumnName(org.apache.poi.ss.usermodel.Cell cell, int columnIndex)protected abstract intgetNumOfColumns(org.apache.poi.ss.usermodel.Row row)protected intgetNumOfModels(org.apache.poi.ss.usermodel.Sheet sheet)AbstractExcelReader<W,T>limit(int limit)Limits the number of models.List<T>read()Returns a list after this reads the excel file.protected Map<String,Object>readRow(org.apache.poi.ss.usermodel.Row row)Converts a row to a imitated model.protected abstract List<T>readSheet(org.apache.poi.ss.usermodel.Sheet sheet)protected List<Map<String,Object>>readSheetAsMaps(org.apache.poi.ss.usermodel.Sheet sheet)Gets models read as map from a sheet.
-
Field Details
-
dataFormatter
protected static final org.apache.poi.ss.usermodel.DataFormatter dataFormatterFormatter that stringifies the value in a cell withFormulaEvaluator.- See Also:
readRow(Row)
-
workbook
Apache POI workbook.- See Also:
HSSFWorkbook,XSSFWorkbook
-
formulaEvaluator
protected final org.apache.poi.ss.usermodel.FormulaEvaluator formulaEvaluatorEvaluator that evaluates the formula in a cell.- See Also:
Workbook.getCreationHelper(),CreationHelper.createFormulaEvaluator(),readRow(Row)
-
limit
protected int limitLimitation of reading rows.- See Also:
limit(int)
-
numOfModelsRead
protected int numOfModelsReadTotal number of models read byAbstractExcelReader.- See Also:
limit(int)
-
-
Constructor Details
-
Method Details
-
limit
Limits the number of models.- Specified by:
limitin interfaceExcelReader<W extends org.apache.poi.ss.usermodel.Workbook,T>- Parameters:
limit- limit for the number of models- Returns:
AbstractExcelReader
-
read
Returns a list after this reads the excel file.When an empty row is in the middle of body, computation of the number of models by
ExcelUtils.getNumOfModels(Sheet)is missed. Models are missing as many empty rows.- Specified by:
readin interfaceExcelReader<W extends org.apache.poi.ss.usermodel.Workbook,T>- Returns:
- list
-
getNumOfModels
protected final int getNumOfModels(org.apache.poi.ss.usermodel.Sheet sheet) -
readSheetAsMaps
Gets models read as map from a sheet.- Parameters:
sheet- excel sheet- Returns:
- models read as map
-
readRow
Converts a row to a imitated model.Reads rows to get data. this creates
Mapas a imitated model and puts the key(Field.getName()) and the value (DataFormatter.formatCellValue(Cell, FormulaEvaluator)) to the model. The result is the same as the following code.+------+--------+--------+----------+ | name | height | weight | eyesight | +------+--------+--------+----------+ | John | 180.5 | 79.2 | | +------+--------+--------+----------+ This row will be converted to { "name": "John", "height": "180.5", "weight": "79.2", "eyesight": null }- Parameters:
row- row in sheet- Returns:
- imitated model
-
beforeRead
-
afterRead
-
readSheet
-
beforeReadModels
protected void beforeReadModels(org.apache.poi.ss.usermodel.Sheet sheet) -
getNumOfColumns
protected abstract int getNumOfColumns(org.apache.poi.ss.usermodel.Row row) -
getColumnName
-