Expressions in cells are inside ${...}
. Everything inside is evaluated by an Expression Evaluator.
Some command attributes also contain expressions - but there without ${...}
.
Jxls supports these expression languages:
Other expression languages could be integrated by implementing ExpressionEvaluatorFactory and ExpressionEvaluator. And using the builder method withExpressionEvaluatorFactory().
See homepage and especially the JEXL syntax reference.
Access a property: obj.propertName
Add to values: obj.number1+obj.number2
condition: obj.number1 > obj.number2 && obj.number3 < 100
If-else: obj.condition ? "true value" : "else value"
Is empty() and size(): empty(list) ? "There are no items." : "There are " + size(list) + " item(s)."
Prevent null: obj.propertyName??""
Expression evaluators based on JSR 223 "Scripting for the Java Platform" are also supported, e.g. the Spring Expression Language (SpEL).