Skip to main content
Row

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