Skip to main content
Row

DevExpress v24.2 Update — Your Feedback Matters

Our What's New in v24.2 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

CalculationEngineType Enum

Lists types of computational models used for spreadsheet calculations.

Namespace: DevExpress.Spreadsheet

Assembly: DevExpress.Spreadsheet.v24.2.Core.dll

NuGet Package: DevExpress.Spreadsheet.Core

#Declaration

public enum CalculationEngineType

#Members

Name Description
ChainBased

This is the default calculation engine type. It constructs the calculation chain.

Spreadsheet analyzes cell formulas to build the tree of dependencies between cells, and constructs the calculation chain. When cell content is modified, the dependency tree allows you to determine which cells should be calculated. Those cells are marked as needing recalculation.

There are also cells which are always marked as needing calculation. They are listed below:

  • containing volatile function
  • referencing another cell which always needs recalculation
  • containing a circular reference

After calling the Workbook.EndUpdate method, the Spreadsheet calculates all cells marked as needing recalculation.

Recursive

This type of calculation engine was used by default before v15.1.

When the cell content is modified, all cells are marked as needing recalculation. Calculation of a particular cell is performed when needed - in a situation when its actual value is required for rendering or when the calculation engine attempts to obtain a value of another cell which references the current cell.

#Related API Members

The following properties accept/return CalculationEngineType values:

Library Related API Members
WPF Controls SpreadsheetControlOptions.CalculationEngineType
Office File API DocumentOptions.CalculationEngineType

#Remarks

The CalculationEngineType value is accessible using the DocumentOptions.CalculationEngineType property. You can change it to adjust performance and memory consumption.

The ChainBased mode consumes more memory but improves performance. It is recommended for use in a visual control (SpreadsheetControl, SpreadsheetControl).

The Recursive mode does not allocate resources for dependence tree storage and maintenance, so it is best suited to server-based components such as Workbook. Server-based calculations are usually performed only once, before a document is saved.

Note

Switching the CalculationOptions.Mode property to the CalculationMode.Automatic forces recalculation of all cells marked as needing calculation in the ChainBased mode and recalculates all cells in the Recursive mode.

See Also