-
Notifications
You must be signed in to change notification settings - Fork 297
Breaking Changes in EPPlus 7
Mats Alm edited this page Aug 25, 2023
·
14 revisions
The formula parser has changed significantly in EPPlus 7, requiring all custom functions that are inherited from the ExcelFunction class to be reviewed. The ExcelFunction class now exposes new properties used to handle array results and condition behaviour.
-
NamespacePrefix- If the function requires a prefix when saved, for example "_xlfn." or "_xlfn._xlws." -
HasNormalArgumentsA Boolean indicating if the formula only has normal arguments. If false, theGetParameterInfomethod must be implemented. The default is true. -
ReturnsReference- If true the function can return a reference to a range. Use theCreateAddressResultto return the result with a reference. Returning a reference will cause the dependency chain to check the address and will allow the colon operator to be used with the function. -
IsVolatile- If the function returns a different result when called with the same parameters. The default is false. -
ArrayBehaviour- If the function allows arrays as input in a parameter, resulting in an array output. Also see theGetArrayBehaviourConfigmethod. Methods -
CreateAddressResult- Returns the result with a reference to a range. -
CreateDynamicArrayResult- The result should be treated as a dynamic array. -
GetArrayBehaviourConfig- Sets the index if the parameters that can be arrays. Also see theArrayBehaviourproperty.
- The source code tokenizer now tokenizes in more detail, tokenizing addresses.
- The expression handling is totally rewritten and now uses reversed polish notation instead of an expression tree. This change affects internal classes only.
- The
CompileResultclass has moved to a new namespace: OfficeOpenXml.FormulaParsing.FormulaExpressions - The
FunctionCompilerFactoryclass has changed visibility from public to internal.
EPPlus Software AB - https://epplussoftware.com
- What is new in EPPlus 5+
- Breaking Changes in EPPlus 5
- Breaking Changes in EPPlus 6
- Breaking Changes in EPPlus 7
- Breaking Changes in EPPlus 8
- Addressing a worksheet
- Dimension/Used range
- Copying ranges/sheets
- Insert/Delete
- Filling ranges
- Sorting ranges
- Taking and skipping columns/rows
- Data validation
- Comments
- Freeze and Split Panes
- Header and Footer
- Hyperlinks
- Autofit columns
- Grouping and Ungrouping Rows and Columns
- Formatting and styling
- The ExcelRange.Text property
- Conditional formatting
- Using Themes
- Working with custom named table- or slicer- styles