# GrapeCity.Spreadsheet.CalculationEngine

## Content

<div class="doc-site-dotnet-api-container">



  <h1 id="GrapeCity_Spreadsheet_CalculationEngine" data-uid="GrapeCity.Spreadsheet.CalculationEngine" class="text-break">CalculationEngine Class
</h1>
  <div class="markdown level0 summary"><p>Represents a class which store, evaluate or adjust expressions.</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
    <div class="level1"><span class="xref">CalculationEngine</span></div>
  </div>
  <div class="implements">
    <h5>Implements</h5>
    <div><a class="xref" href="../GrapeCity.CalcEngine/GrapeCity.CalcEngine.IAsyncFunctionManager.html">IAsyncFunctionManager</a></div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="GrapeCity.Spreadsheet.html">GrapeCity.Spreadsheet</a></h6>
  <h6><strong>Assembly</strong>: GrapeCity.Spreadsheet.dll</h6>
  <h5 id="GrapeCity_Spreadsheet_CalculationEngine_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public sealed class CalculationEngine : IAsyncFunctionManager</code></pre>
  </div>
  <div class="codewrapper">
    <pre><code class="lang-vbnet hljs">Public NotInheritable Class CalculationEngine
    Implements IAsyncFunctionManager</code></pre>
  </div>
  <h3 id="properties">Properties
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="GrapeCity_Spreadsheet_CalculationEngine_CacheOptions" data-uid="GrapeCity.Spreadsheet.CalculationEngine.CacheOptions">
          <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.CacheOptions.html#GrapeCity_Spreadsheet_CalculationEngine_CacheOptions">CacheOptions</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets the <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.CacheOptions.html#GrapeCity_Spreadsheet_CalculationEngine_CacheOptions">CacheOptions</a> value describing the caching option.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_CalculationEngine_CalcFeatures" data-uid="GrapeCity.Spreadsheet.CalculationEngine.CalcFeatures">
          <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.CalcFeatures.html#GrapeCity_Spreadsheet_CalculationEngine_CalcFeatures">CalcFeatures</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets a <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.CalcFeatures.html#GrapeCity_Spreadsheet_CalculationEngine_CalcFeatures">CalcFeatures</a> value indicates which calculation feature(s) is enabled.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_CalculationEngine_CalculateBeforeSave" data-uid="GrapeCity.Spreadsheet.CalculationEngine.CalculateBeforeSave">
          <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.CalculateBeforeSave.html#GrapeCity_Spreadsheet_CalculationEngine_CalculateBeforeSave">CalculateBeforeSave</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets the property which specifies whether workbooks should be calculated as needed before saving.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_CalculationEngine_Calculation" data-uid="GrapeCity.Spreadsheet.CalculationEngine.Calculation">
          <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.Calculation.html#GrapeCity_Spreadsheet_CalculationEngine_Calculation">Calculation</a>
        </td>
        <td class="markdown level1 summary"><p>Specifies when the control should recalculate the data in the workbook.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_CalculationEngine_CalculationOnDemandMode" data-uid="GrapeCity.Spreadsheet.CalculationEngine.CalculationOnDemandMode">
          <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.CalculationOnDemandMode.html#GrapeCity_Spreadsheet_CalculationEngine_CalculationOnDemandMode">CalculationOnDemandMode</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets the <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.CalculationOnDemandMode.html#GrapeCity_Spreadsheet_CalculationEngine_CalculationOnDemandMode">CalculationOnDemandMode</a> value which determines how individual cells are calculated on demand.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_CalculationEngine_EvaluationContext" data-uid="GrapeCity.Spreadsheet.CalculationEngine.EvaluationContext">
          <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.EvaluationContext.html#GrapeCity_Spreadsheet_CalculationEngine_EvaluationContext">EvaluationContext</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the global shared evaluation context.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_CalculationEngine_Iterative" data-uid="GrapeCity.Spreadsheet.CalculationEngine.Iterative">
          <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.Iterative.html#GrapeCity_Spreadsheet_CalculationEngine_Iterative">Iterative</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets whether the workbook should perform iterative calculations for formulas that contain circular references.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_CalculationEngine_MaximumChange" data-uid="GrapeCity.Spreadsheet.CalculationEngine.MaximumChange">
          <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.MaximumChange.html#GrapeCity_Spreadsheet_CalculationEngine_MaximumChange">MaximumChange</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets the maximum amount of change below which to stop iterating for caclulations with circular references.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_CalculationEngine_MaximumIterations" data-uid="GrapeCity.Spreadsheet.CalculationEngine.MaximumIterations">
          <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.MaximumIterations.html#GrapeCity_Spreadsheet_CalculationEngine_MaximumIterations">MaximumIterations</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets the maximum number of iterations for calculations with circular references.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_CalculationEngine_ReferenceStyle" data-uid="GrapeCity.Spreadsheet.CalculationEngine.ReferenceStyle">
          <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.ReferenceStyle.html#GrapeCity_Spreadsheet_CalculationEngine_ReferenceStyle">ReferenceStyle</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.ReferenceStyle.html#GrapeCity_Spreadsheet_CalculationEngine_ReferenceStyle">ReferenceStyle</a> value which specifies whether to use A1 style or R1C1 style in cell and range references.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_CalculationEngine_SuspendCalculation" data-uid="GrapeCity.Spreadsheet.CalculationEngine.SuspendCalculation">
          <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.SuspendCalculation.html#GrapeCity_Spreadsheet_CalculationEngine_SuspendCalculation">SuspendCalculation</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets a value indicating whether formulas are immediately calculated as dependent cells are changed.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="methods">Methods
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="GrapeCity_Spreadsheet_CalculationEngine_Calculate" data-uid="GrapeCity.Spreadsheet.CalculationEngine.Calculate">
          <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.Calculate.html#GrapeCity_Spreadsheet_CalculationEngine_Calculate">Calculate()</a>
        </td>
        <td class="markdown level1 summary"><p>Calculates all dirty cells in the whole workbook set.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_CalculationEngine_Calculate_GrapeCity_Spreadsheet_IWorkbook_System_Boolean_System_Boolean_" data-uid="GrapeCity.Spreadsheet.CalculationEngine.Calculate(GrapeCity.Spreadsheet.IWorkbook,System.Boolean,System.Boolean)">
          <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.Calculate.html#GrapeCity_Spreadsheet_CalculationEngine_Calculate_GrapeCity_Spreadsheet_IWorkbook_System_Boolean_System_Boolean_">Calculate(IWorkbook, bool, bool)</a>
        </td>
        <td class="markdown level1 summary"><p>Calculates cells in the specified workbook.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_CalculationEngine_Calculate_GrapeCity_Spreadsheet_IWorksheet_" data-uid="GrapeCity.Spreadsheet.CalculationEngine.Calculate(GrapeCity.Spreadsheet.IWorksheet)">
          <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.Calculate.html#GrapeCity_Spreadsheet_CalculationEngine_Calculate_GrapeCity_Spreadsheet_IWorksheet_">Calculate(IWorksheet)</a>
        </td>
        <td class="markdown level1 summary"><p>Calculates cells in the specified worksheet.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_CalculationEngine_Evaluate_System_String_GrapeCity_Spreadsheet_IWorksheet_GrapeCity_Spreadsheet_CellReference_" data-uid="GrapeCity.Spreadsheet.CalculationEngine.Evaluate(System.String,GrapeCity.Spreadsheet.IWorksheet,GrapeCity.Spreadsheet.CellReference)">
          <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.Evaluate.html#GrapeCity_Spreadsheet_CalculationEngine_Evaluate_System_String_GrapeCity_Spreadsheet_IWorksheet_GrapeCity_Spreadsheet_CellReference_">Evaluate(string, IWorksheet, CellReference)</a>
        </td>
        <td class="markdown level1 summary"><p>Evaluates the specified expression using the specified evaluation context.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_CalculationEngine_IsCircularCell_GrapeCity_Spreadsheet_IWorksheet_System_Int32_System_Int32_" data-uid="GrapeCity.Spreadsheet.CalculationEngine.IsCircularCell(GrapeCity.Spreadsheet.IWorksheet,System.Int32,System.Int32)">
          <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.IsCircularCell.html#GrapeCity_Spreadsheet_CalculationEngine_IsCircularCell_GrapeCity_Spreadsheet_IWorksheet_System_Int32_System_Int32_">IsCircularCell(IWorksheet, int, int)</a>
        </td>
        <td class="markdown level1 summary"><p>Determines whether the specified cell is a circular cell.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_CalculationEngine_IsTrackingVisualChange" data-uid="GrapeCity.Spreadsheet.CalculationEngine.IsTrackingVisualChange">
          <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.IsTrackingVisualChange.html#GrapeCity_Spreadsheet_CalculationEngine_IsTrackingVisualChange">IsTrackingVisualChange()</a>
        </td>
        <td class="markdown level1 summary"><p>Gets a boolean value indicating whether the visual change should notify the calculation engine.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_CalculationEngine_Max_GrapeCity_CalcEngine_IEvaluationContext_GrapeCity_CalcEngine_IReferenceSource_System_Int32_System_Int32_System_Int32_System_Int32_" data-uid="GrapeCity.Spreadsheet.CalculationEngine.Max(GrapeCity.CalcEngine.IEvaluationContext,GrapeCity.CalcEngine.IReferenceSource,System.Int32,System.Int32,System.Int32,System.Int32)">
          <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.Max.html#GrapeCity_Spreadsheet_CalculationEngine_Max_GrapeCity_CalcEngine_IEvaluationContext_GrapeCity_CalcEngine_IReferenceSource_System_Int32_System_Int32_System_Int32_System_Int32_">Max(IEvaluationContext, IReferenceSource, int, int, int, int)</a>
        </td>
        <td class="markdown level1 summary"><p>Gets MAX of the specified range.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_CalculationEngine_Min_GrapeCity_CalcEngine_IEvaluationContext_GrapeCity_CalcEngine_IReferenceSource_System_Int32_System_Int32_System_Int32_System_Int32_" data-uid="GrapeCity.Spreadsheet.CalculationEngine.Min(GrapeCity.CalcEngine.IEvaluationContext,GrapeCity.CalcEngine.IReferenceSource,System.Int32,System.Int32,System.Int32,System.Int32)">
          <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.Min.html#GrapeCity_Spreadsheet_CalculationEngine_Min_GrapeCity_CalcEngine_IEvaluationContext_GrapeCity_CalcEngine_IReferenceSource_System_Int32_System_Int32_System_Int32_System_Int32_">Min(IEvaluationContext, IReferenceSource, int, int, int, int)</a>
        </td>
        <td class="markdown level1 summary"><p>Gets MIN of the specified range.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_CalculationEngine_NotifyVisualChanged_GrapeCity_Spreadsheet_IWorkbook_" data-uid="GrapeCity.Spreadsheet.CalculationEngine.NotifyVisualChanged(GrapeCity.Spreadsheet.IWorkbook)">
          <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.NotifyVisualChanged.html#GrapeCity_Spreadsheet_CalculationEngine_NotifyVisualChanged_GrapeCity_Spreadsheet_IWorkbook_">NotifyVisualChanged(IWorkbook)</a>
        </td>
        <td class="markdown level1 summary"><p>Notifies the calculation engine the visual of all worksheet in the specified workbook are repainted.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_CalculationEngine_NotifyVisualChanged_GrapeCity_Spreadsheet_IWorksheet_GrapeCity_Spreadsheet_Reference___" data-uid="GrapeCity.Spreadsheet.CalculationEngine.NotifyVisualChanged(GrapeCity.Spreadsheet.IWorksheet,GrapeCity.Spreadsheet.Reference[])">
          <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.NotifyVisualChanged.html#GrapeCity_Spreadsheet_CalculationEngine_NotifyVisualChanged_GrapeCity_Spreadsheet_IWorksheet_GrapeCity_Spreadsheet_Reference___">NotifyVisualChanged(IWorksheet, Reference[])</a>
        </td>
        <td class="markdown level1 summary"><p>Notifies the calculation engine the visual of the specified cell range is repainted.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_CalculationEngine_NotifyVisualChanged_GrapeCity_Spreadsheet_IWorksheet_System_Int32_System_Int32_System_Int32_System_Int32_" data-uid="GrapeCity.Spreadsheet.CalculationEngine.NotifyVisualChanged(GrapeCity.Spreadsheet.IWorksheet,System.Int32,System.Int32,System.Int32,System.Int32)">
          <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.NotifyVisualChanged.html#GrapeCity_Spreadsheet_CalculationEngine_NotifyVisualChanged_GrapeCity_Spreadsheet_IWorksheet_System_Int32_System_Int32_System_Int32_System_Int32_">NotifyVisualChanged(IWorksheet, int, int, int, int)</a>
        </td>
        <td class="markdown level1 summary"><p>Notifies the calculation engine the visual of the specified cell range is repainted.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_CalculationEngine_Rebuild" data-uid="GrapeCity.Spreadsheet.CalculationEngine.Rebuild">
          <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.Rebuild.html#GrapeCity_Spreadsheet_CalculationEngine_Rebuild">Rebuild()</a>
        </td>
        <td class="markdown level1 summary"><p>Rebuilds all internal data of the calculation engine.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_CalculationEngine_Sum_GrapeCity_CalcEngine_IEvaluationContext_GrapeCity_CalcEngine_IReferenceSource_System_Int32_System_Int32_System_Int32_System_Int32_" data-uid="GrapeCity.Spreadsheet.CalculationEngine.Sum(GrapeCity.CalcEngine.IEvaluationContext,GrapeCity.CalcEngine.IReferenceSource,System.Int32,System.Int32,System.Int32,System.Int32)">
          <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.Sum.html#GrapeCity_Spreadsheet_CalculationEngine_Sum_GrapeCity_CalcEngine_IEvaluationContext_GrapeCity_CalcEngine_IReferenceSource_System_Int32_System_Int32_System_Int32_System_Int32_">Sum(IEvaluationContext, IReferenceSource, int, int, int, int)</a>
        </td>
        <td class="markdown level1 summary"><p>Gets SUM of the specified range.</p>
</td>
      </tr>
      <tr>
        <td id="GrapeCity_Spreadsheet_CalculationEngine_TriggerVolatileCells" data-uid="GrapeCity.Spreadsheet.CalculationEngine.TriggerVolatileCells">
          <a class="xref" href="GrapeCity.Spreadsheet.CalculationEngine.TriggerVolatileCells.html#GrapeCity_Spreadsheet_CalculationEngine_TriggerVolatileCells">TriggerVolatileCells()</a>
        </td>
        <td class="markdown level1 summary"><p>This function will notify all cells, which contains volatile functions or belong to a circuit, to recalculate.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="seealso">See Also</h3>
  <div class="seealso">
      <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.idisposable">IDisposable</a></div>
  </div>

</div>
