Class ModelWriter<W extends org.apache.poi.ss.usermodel.Workbook,T>
- Type Parameters:
W
- excel workbookT
- type of model
- All Implemented Interfaces:
ExcelWriter<T>
public final class ModelWriter<W extends org.apache.poi.ss.usermodel.Workbook,T> extends AbstractExcelWriter<W,T>
-
Field Summary
Fields inherited from class com.github.javaxcel.out.AbstractExcelWriter
bodyStyles, headerNames, headerStyles, rolling, sheetName, willAutoResize, willHideCols, willHideRows, workbook
-
Method Summary
Modifier and Type Method Description ModelWriter<W,T>
autoResizeCols()
protected void
beforeWrite(OutputStream out, List<T> list)
ModelWriter<W,T>
bodyStyle(com.github.javaxcel.styler.ExcelStyleConfig config)
ModelWriter<W,T>
bodyStyles(com.github.javaxcel.styler.ExcelStyleConfig... configs)
ModelWriter<W,T>
defaultValue(String defaultValue)
Sets default value when value to be written is null or empty.ModelWriter<W,T>
disableRolling()
Disables rolling excess rows.ModelWriter<W,T>
enumDropdown()
Enables to create dropdowns for columns of enum.protected int
getNumOfColumns()
Returns the number of columns.ModelWriter<W,T>
headerNames(List<String> headerNames)
Sets header names.ModelWriter<W,T>
headerStyle(com.github.javaxcel.styler.ExcelStyleConfig config)
ModelWriter<W,T>
headerStyles(com.github.javaxcel.styler.ExcelStyleConfig... configs)
ModelWriter<W,T>
hideExtraCols()
ModelWriter<W,T>
hideExtraRows()
protected void
ifHeaderNamesAreEmpty(List<String> headerNames)
Handles header names, if they are empty.ModelWriter<W,T>
sheetName(String sheetName)
Sets sheet name.protected void
writeToSheet(org.apache.poi.ss.usermodel.Sheet sheet, List<T> list)
Writes list of models to the sheet.
-
Method Details
-
headerNames
Sets header names.For example, the following list will be exported.
[ { "serialNumber": 10000, "name": "Choco cereal", "apiId": "2a60-4973-aec0-685e", "width": null, "depth": 0.0, "height": 20.5, "weight": 580.5 }, { "serialNumber": 10001, "name": "Oatmeal cereal", "apiId": "f15d-384d-0a4b-97ec", "width": 10.2, "depth": 4.0, "height": 6.0, "weight": 575.0 } ]
To change the header names, place the names you want them changed to in the order like this.
List<String> names = Arrays.asList( "SERIAL_NUMBER", "NAME", "API_ID", "WIDTH" "DEPTH", "HEIGHT", "WEIGHT"); ExcelWriterFactory.create(new SXSSFWorkbook(), Product.class) .headerNames(names) .write(new FileOutputStream(file), list);
Then the header names will be changed you want.
+---------------+----------------+---------------------+-------+-------+--------+--------+ | SERIAL_NUMBER | NAME | API_ID | WIDTH | DEPTH | HEIGHT | WEIGHT | +---------------+----------------+---------------------+-------+-------+--------+--------+ | 10000 | Choco cereal | 2a60-4973-aec0-685e | | 0.0 | 20.5 | 580.5 | +---------------+----------------+---------------------+-------+-------+--------+--------+ | 10001 | Oatmeal cereal | f15d-384d-0a4b-97ec | 10.2 | 4.0 | 6.0 | 575.0 | +---------------+----------------+---------------------+-------+-------+--------+--------+
- Overrides:
headerNames
in classAbstractExcelWriter<W extends org.apache.poi.ss.usermodel.Workbook,T>
- Parameters:
headerNames
- header name- Returns:
ModelWriter
-
defaultValue
Sets default value when value to be written is null or empty.- Overrides:
defaultValue
in classAbstractExcelWriter<W extends org.apache.poi.ss.usermodel.Workbook,T>
- Parameters:
defaultValue
- replacement of the value when it is null or empty string.- Returns:
ModelWriter
-
sheetName
Sets sheet name.Prefix for each sheet name. For example, if you set 'SHEET' to this, the names you can see are SHEET0, SHEET1, SHEET2, ...
If you invoke
AbstractExcelWriter.disableRolling()
, the sheet name has no suffix. You can see the sheet name like this SHEET- Overrides:
sheetName
in classAbstractExcelWriter<W extends org.apache.poi.ss.usermodel.Workbook,T>
- Parameters:
sheetName
- sheet name- Returns:
ModelWriter
- See Also:
AbstractExcelWriter.disableRolling()
-
disableRolling
Disables rolling excess rows.If this is invoked, excel file has only one sheet.
- Overrides:
disableRolling
in classAbstractExcelWriter<W extends org.apache.poi.ss.usermodel.Workbook,T>
- Returns:
ModelWriter
-
enumDropdown
Enables to create dropdowns for columns of enum.If this is invoked, excel file has only one sheet.
- Returns:
ModelWriter
- See Also:
ExcelModel.enumDropdown()
,ExcelColumn.enumDropdown()
-
headerStyle
- Overrides:
headerStyle
in classAbstractExcelWriter<W extends org.apache.poi.ss.usermodel.Workbook,T>
- Returns:
ModelWriter
-
headerStyles
- Overrides:
headerStyles
in classAbstractExcelWriter<W extends org.apache.poi.ss.usermodel.Workbook,T>
- Returns:
ModelWriter
-
bodyStyle
- Overrides:
bodyStyle
in classAbstractExcelWriter<W extends org.apache.poi.ss.usermodel.Workbook,T>
- Returns:
ModelWriter
-
bodyStyles
- Overrides:
bodyStyles
in classAbstractExcelWriter<W extends org.apache.poi.ss.usermodel.Workbook,T>
- Returns:
ModelWriter
-
autoResizeCols
- Overrides:
autoResizeCols
in classAbstractExcelWriter<W extends org.apache.poi.ss.usermodel.Workbook,T>
- Returns:
ModelWriter
-
hideExtraRows
- Overrides:
hideExtraRows
in classAbstractExcelWriter<W extends org.apache.poi.ss.usermodel.Workbook,T>
- Returns:
ModelWriter
-
hideExtraCols
- Overrides:
hideExtraCols
in classAbstractExcelWriter<W extends org.apache.poi.ss.usermodel.Workbook,T>
- Returns:
ModelWriter
-
beforeWrite
- Overrides:
beforeWrite
in classAbstractExcelWriter<W extends org.apache.poi.ss.usermodel.Workbook,T>
- See Also:
createDropdowns(Sheet)
-
ifHeaderNamesAreEmpty
Handles header names, if they are empty.You have to implement how to do, if the header names are empty. For examples, you can throw exception or set default header names. This process will be executed before
ExcelWriter
writes header.If the header names are not set through
headerNames(List)
, this method brings the values fromExcelColumn.name()
.- Specified by:
ifHeaderNamesAreEmpty
in classAbstractExcelWriter<W extends org.apache.poi.ss.usermodel.Workbook,T>
- Parameters:
headerNames
- header names- See Also:
FieldUtils.toHeaderNames(List)
-
writeToSheet
Writes list of models to the sheet.- Specified by:
writeToSheet
in classAbstractExcelWriter<W extends org.apache.poi.ss.usermodel.Workbook,T>
- Parameters:
sheet
- sheetlist
- list of models
-
getNumOfColumns
protected int getNumOfColumns()Returns the number of columns.- Specified by:
getNumOfColumns
in classAbstractExcelWriter<W extends org.apache.poi.ss.usermodel.Workbook,T>
- Returns:
- the number of columns
-