Skip to main content

Annotation

This section describes how to read annotations provided in the project.

Entity Class Annotations

Entity classes are the foundation of read and write operations. FesodSheet provides various annotations to help developers easily define fields and formats.

@ExcelProperty

Defines the column name in spreadsheet and the field name to map. Specific parameters are as follows:

NameDefault ValueDescription
valueEmptyUsed to match the header in spreadsheet, must be fully matched. If there are multiple header rows, it will match the last row header.
orderInteger.MAX_VALUEHigher priority than value, will match the order of entities and data in spreadsheet according to the order of order.
index-1Higher priority than value and order, will directly specify which column in spreadsheet to match based on index.
converterAutomatically selectedSpecifies which converter the current field uses. By default, it will be automatically selected.
For reading, as long as the org.apache.fesod.sheet.converters.Converter#convertToJavaData(org.apache.fesod.sheet.converters.ReadConverterContext<?>) method is implemented, it is sufficient.

@ExcelIgnore

By default, all fields will match spreadsheet. Adding this annotation will ignore the field.

@ExcelIgnoreUnannotated

By default, all properties without the @ExcelProperty annotation are involved in read/write operations. Properties with this annotation are not involved in read/write operations.

@DateTimeFormat

Date conversion: When using String to receive data in spreadsheet date format, this annotation will be called. The parameters are as follows:

NameDefault ValueDescription
valueEmptyRefer to java.text.SimpleDateFormat .
use1904windowingAutomatically selectedIn spreadsheet, time is stored as a double-precision floating-point number starting from 1900, but sometimes the default start date is 1904, so set this value to change the default start date to 1904.

@NumberFormat

Number conversion, using String to receive data in spreadsheet number format will trigger this annotation.

NameDefault ValueDescription
valueEmptyRefer to java.text.DecimalFormat.
roundingModeRoundingMode.HALF_UPSet the rounding mode when formatting

@ColumnWidth

Specifies the column width.

@HeadRowHeight & @ContentRowHeight

Specifies the height of the header rows (@HeadRowHeight) or the content rows (@ContentRowHeight). The parameters are as follows:

NameDefault ValueDescription
value-1Set the height. -1 indicates automatic height setting.

@HeadFontStyle & @ContentFontStyle

Customizes the font style for headers (@HeadFontStyle) or content data (@ContentFontStyle). The parameters are as follows:

NameDefault ValueDescription
fontNameEmptyThe name for the font (e.g., "Arial").
fontHeightInPoints-1Set font height.
italicBooleanEnum.DEFAULTWhether to use italics.
strikeoutBooleanEnum.DEFAULTWhether to use a strikeout horizontal line through the text.
color-1The color for the font. (See org.apache.poi.ss.usermodel.IndexedColors or org.apache.poi.ss.usermodel.Font, e.g., Font.COLOR_NORMAL).
typeOffset-1Set the font type offset to normal, super, or subscript (See org.apache.poi.ss.usermodel.Font, e.g., Font.SS_NONE).
underline-1Set type of text underlining (See org.apache.poi.ss.usermodel.Font, e.g., Font.U_SINGLE).
charset-1Set character-set to use (See org.apache.poi.common.usermodel.fonts.FontCharset or org.apache.poi.ss.usermodel.Font, e.g., Font.ANSI_CHARSET).
boldBooleanEnum.DEFAULTWhether to apply bold style.

@HeadStyle & @ContentStyle

Customizes the cell style (borders, alignment, colors...) for header data (@HeadStyle) or content data (@ContentStyle). The parameters are as follows:

NameDefault ValueDescription
dataFormat-1Set the data format (must be a valid format defined at org.apache.poi.ss.usermodel.BuiltinFormats).
hiddenBooleanEnum.DEFAULTset the cell to be hidden. Note: This only takes effect if the sheet is protected.
lockedBooleanEnum.DEFAULTSet the cell to be locked. Note: This only takes effect if the sheet is protected.
quotePrefixBooleanEnum.DEFAULTTurn on/off "Quote Prefix" (treats numeric/formula as text).
horizontalAlignmentHorizontalAlignmentEnum.DEFAULTSet the horizontal alignment.
wrappedBooleanEnum.DEFAULTSet whether the text should be wrapped within the cell.
verticalAlignmentVerticalAlignmentEnum.DEFAULTSet the vertical alignment.
rotation-1Set the degree of rotation for the text.
indent-1Set the number of spaces to indent the text.
borderLeftBorderStyleEnum.DEFAULTSet the border style for the left border.
borderRightBorderStyleEnum.DEFAULTSet the border style for the right border.
borderTopBorderStyleEnum.DEFAULTSet the border style for the top border.
borderBottomBorderStyleEnum.DEFAULTSet the border style for the bottom border.
leftBorderColor-1Set the color for the left border (See org.apache.poi.ss.usermodel.IndexedColors).
rightBorderColor-1Set the color for the right border (See org.apache.poi.ss.usermodel.IndexedColors).
topBorderColor-1Set the color for the top border (See org.apache.poi.ss.usermodel.IndexedColors).
bottomBorderColor-1Set the color for the bottom border (See org.apache.poi.ss.usermodel.IndexedColors).
fillPatternTypeFillPatternTypeEnum.DEFAULTSet the fill pattern
fillBackgroundColor-1Set the background fill color.
fillForegroundColor-1Set the foreground fill color. Note: Ensure Foreground color is set prior to background color.
shrinkToFitBooleanEnum.DEFAULTControls if the Cell should be auto-sized to shrink to fit if text is too long.

@ContentLoopMerge

Defines a loop merge strategy for content cells. The parameters are as follows:

NameDefault ValueDescription
eachRow1The number of rows to include in each merge loop.
columnExtend1The number of columns to extend the merge.

@OnceAbsoluteMerge

Defines a one-time absolute merge region. The parameters are as follows:

NameDefault ValueDescription
firstRowIndex-1The index of the first row to merge.
lastRowIndex-1The index of the last row to merge.
firstColumnIndex-1The index of the first column to merge.
lastColumnIndex-1The index of the last column to merge.