Advanced CSV
A CSV template is defined with a *.csv.properties
file. This properties gives you options to change general
configuration, define format or provide custom validation.
The available options are:
Key | Default | Description |
---|---|---|
charsetName | UTF-8 | Option to change the charset name. |
quote | « | The quote character is used when a cell contains special characters, such as the delimiter char, a quote char, or spans multiple lines. |
separator | ; | The delimiter character separates each cell in a row. |
endOfLine | \n | The end of line symbols to use when writing. |
showHeader | true | If true, show the column headers. |
columns | N/A | Mandatory. List of the model fields to render. |
xxxx.name | N/A | Header name to write. If the name property is not present the header will be the field name |
xxxx.type | String | Available types are «date», «boolean», «int»,«double», «long», «bigdecimal». |
xxxx.format | N/A | Used to format date, boolean and number (ex: birthdate.format=dd/MM/yyyy ). For the boolean type you can specify how to write true or false values by two comma separated values: married.format=Yes,No . |
xxxx.notNull | false | Is used to define if the field is optional or not. |
xxxx.unique | false | Is used to define the field must be unique. |
Example
# General configuration
quote="
separator=;
endOfLine=\n
charsetName=UTF-8
columns=customerNo, firstName, lastName, birthDate, mailingAddress, married, numberOfKids, favouriteQuote, email, loyaltyPoints
# customerNo (must be unique)
customerNo.name=ID
customerNo.nullable=false
customerNo.unique=true
# firstName
firstName.name=First name
firstName.nullable=false
# lastName
lastName.name=Last name
lastName.nullable=false
# birthDate
birthDate.name=Birth date
birthDate.nullable=false
birthDate.type=date
birthDate.format=dd/MM/yyyy
# mailingAddress
mailingAddress.name=Mailling address
mailingAddress.nullable=false
# married
married.name=Married
married.nullable=true
married.type=boolean
married.format=Yes,No
# numberOfKids
numberOfKids.name=Number of kids
numberOfKids.nullable=true
# favouriteQuote
favouriteQuote.name=Favorite quote
favouriteQuote.nullable=false
# email
email.name=Email
email.nullable=false
# loyaltyPoints
loyaltyPoints.name=Loyalty points
loyaltyPoints.nullable=false