# IFormulaOptions

## Content

<div class="docapp-java-api-doc-main"><style>:not(h1, h2, h3, h4, h5, h6)>code,
:not(h1, h2, h3, h4, h5, h6)>tt {
    font-size: 14px;
    padding-top: 4px;
    margin-top: 8px;
    line-height: 1.4em;
}

.summary-table dt code {
    font-size: 14px;
    vertical-align: top;
    padding-top: 4px;
}

.tab {
    background-color: #0066FF;
    color: #ffffff;
    padding: 8px;
    width: 5em;
    font-weight: bold;
}

/*
 * Styles for page header and footer.
 */
.title {
    color: #2c4557;
    margin: 10px 0;
}

.sub-title {
    margin: 5px 0 0 0;
}

.header ul {
    margin: 0 0 15px 0;
    padding: 0;
}

.header ul li,
.footer ul li {
    list-style: none;
}

/*
 * Styles for headings.
 */
.summary h2,
.details h2,
h2,
.block-list h2 {
    padding: 0;
    margin: 15px 0;
}

.summary h3,
.details h3,
.summary .inherited-list h2 {
    background-color: var(--ds-product-color);
    color: #fff;
    border: 1px solid #d0d9e0;
    padding: 7px 5px;
}

.summary h3 a,
.details h3 a,
.summary .inherited-list h2 a {
    color: #fff !important;
}
/*
 * Styles for page layout containers.
 */
dl.notes>dt {
    font-size: 12px;
    font-weight: bold;
    margin: 10px 0 0 0;
    color: #4E4E4E;
}

dl.notes>dd {
    margin: 5px 10px 10px 0;
    font-size: 14px;
}

dl.name-value>dt {
    margin-left: 1px;
    font-size: 1.1em;
    display: inline;
    font-weight: bold;
}

dl.name-value>dd {
    margin: 0 0 0 1px;
    font-size: 1.1em;
    display: inline;
}

/*
 * Styles for lists.
 */
li.circle {
    list-style: circle;
}

ul.horizontal li {
    display: inline;
    font-size: 0.9em;
}

div.inheritance {
    margin: 0;
    padding: 0;
}

div.inheritance div.inheritance {
    margin-left: 2em;
}

ul.block-list,
ul.details-list,
ul.member-list,
ul.summary-list {
    margin: 10px 0 10px 0;
    padding: 0;
}

ul.block-list>li,
ul.details-list>li,
ul.member-list>li,
ul.summary-list>li {
    list-style: none;
    margin-bottom: 15px;
    line-height: 1.4;
}

.summary-table dl,
.summary-table dl dt,
.summary-table dl dd {
    margin-top: 0;
    margin-bottom: 1px;
}

ul.see-list,
ul.see-list-long {
    padding-left: 0;
    list-style: none;
}

ul.see-list li {
    display: inline;
}

ul.see-list li:not(:last-child):after,
ul.see-list-long li:not(:last-child):after {
    content: ", ";
    white-space: pre-wrap;
}

/*
 * Styles for tables.
 */
.summary-table,
.details-table {
    width: 100%;
    border-spacing: 0;
    border-left: 1px solid #EEE;
    border-right: 1px solid #EEE;
    border-bottom: 1px solid #EEE;
    padding: 0;
}

.caption {
    position: relative;
    text-align: left;
    background-repeat: no-repeat;
    color: #253441;
    font-weight: bold;
    clear: none;
    overflow: hidden;
    padding: 0;
    padding-top: 10px;
    padding-left: 1px;
    margin: 0;
    white-space: pre;
}

.caption a:link,
.caption a:visited {
    color: #1f389c;
}

.caption a:hover,
.caption a:active {
    color: #FFFFFF;
}

.caption span {
    white-space: nowrap;
    padding-top: 5px;
    padding-left: 12px;
    padding-right: 12px;
    padding-bottom: 7px;
    display: inline-block;
    background-color: var(--ds-product-color);
    color: #fff;
    border: none;
}

div.table-tabs {
    padding: 10px 0 0 1px;
    margin: 0;
}

div.table-tabs>button {
    border: none;
    cursor: pointer;
    padding: 5px 12px 7px 12px;
    font-weight: bold;
    margin-right: 3px;
}

div.table-tabs>button.active-table-tab {
    background: var(--ds-product-color);
    color: #fff;
}

div.table-tabs>button.table-tab {
    background: var(--ds-product-color);
    color: #FFFFFF;
    border-bottom: 1px solid #eee;
}

.two-column-summary {
    display: grid;
    grid-template-columns: minmax(15%, max-content) minmax(15%, auto);
}

.three-column-summary {
    display: grid;
    grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto);
}

.four-column-summary {
    display: grid;
    grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax(10%, auto);
}

@media screen and (max-width: 600px) {
    .two-column-summary {
        display: grid;
        grid-template-columns: 1fr;
    }
}

@media screen and (max-width: 800px) {
    .three-column-summary {
        display: grid;
        grid-template-columns: minmax(10%, max-content) minmax(25%, auto);
    }

    .three-column-summary .col-last {
        grid-column-end: span 2;
    }
}

@media screen and (max-width: 1000px) {
    .four-column-summary {
        display: grid;
        grid-template-columns: minmax(15%, max-content) minmax(15%, auto);
    }
}

.summary-table>div,
.details-table>div {
    text-align: left;
    padding: 8px 3px 3px 7px;
}

.col-first,
.col-second,
.col-last,
.col-constructor-name,
.col-summary-item-name {
    vertical-align: top;
    padding-right: 0;
    padding-top: 8px;
    padding-bottom: 3px;
}

.table-header {
    background: var(--ds-product-color);
    color: #fff;
    font-weight: bold;
}

.col-first,
.col-first {
    font-size: 13px;
}

.col-second,
.col-second,
.col-last,
.col-constructor-name,
.col-summary-item-name,
.col-last {
    font-size: 13px;
}

.col-first,
.col-second,
.col-constructor-name {
    vertical-align: top;
    overflow: auto;
}

.col-last {
    white-space: normal;
}

.col-first a:link,
.col-first a:visited,
.col-second a:link,
.col-second a:visited,
.col-first a:link,
.col-first a:visited,
.col-second a:link,
.col-second a:visited,
.col-constructor-name a:link,
.col-constructor-name a:visited,
.col-summary-item-name a:link,
.col-summary-item-name a:visited,
.constant-values-container a:link,
.constant-values-container a:visited,
.all-classes-container a:link,
.all-classes-container a:visited,
.all-packages-container a:link,
.all-packages-container a:visited {
    font-weight: bold;
}

.table-sub-heading-color {
    background-color: #EEEEFF;
}

.even-row-color,
.even-row-color .table-header {
    background-color: #FFFFFF;
}

.odd-row-color,
.odd-row-color .table-header {
    background-color: #EEEEEF;
}

/*
 * Styles for contents.
 */
.deprecated-content {
    margin: 0;
    padding: 10px 0;
}

div.block {
    font-size: 14px;
}

.col-last div {
    padding-top: 0;
}

.col-last a {
    padding-bottom: 3px;
}

.module-signature,
.package-signature,
.type-signature,
.member-signature {
    font-size: 14px;
    margin: 14px 0;
    white-space: pre-wrap;
}

.module-signature,
.package-signature,
.type-signature {
    margin-top: 0;
}

.member-signature .type-parameters-long,
.member-signature .parameters,
.member-signature .exceptions {
    display: inline-block;
    vertical-align: top;
    white-space: pre;
}

.member-signature .type-parameters {
    white-space: normal;
}

/*
 * Styles for formatting effect.
 */
.source-line-no {
    color: green;
    padding: 0 30px 0 0;
}

h1.hidden {
    visibility: hidden;
    overflow: hidden;
    font-size: 10px;
}

.block {
    display: block;
    margin: 0 10px 5px 0;
    color: #474747;
}

.deprecated-label,
.descfrm-type-label,
.implementation-label,
.member-name-label,
.member-name-link,
.module-label-in-package,
.module-label-in-type,
.override-specify-label,
.package-label-in-type,
.package-hierarchy-label,
.type-name-label,
.type-name-link,
.search-tag-link,
.preview-label {
    font-weight: bold;
}

.deprecation-block {
    font-size: 14px;
    border-style: solid;
    border-width: thin;
    border-radius: 10px;
    padding: 10px;
    margin-bottom: 10px;
    margin-right: 10px;
    display: inline-block;
}

.preview-block {
    font-size: 14px;
    border-style: solid;
    border-width: thin;
    border-radius: 10px;
    padding: 10px;
    margin-bottom: 10px;
    margin-right: 10px;
    display: inline-block;
}

/*
 * Styles for user-provided tables.
 *
 * borderless:
 *      No borders, vertical margins, styled caption.
 *      This style is provided for use with existing doc comments.
 *      In general, borderless tables should not be used for layout purposes.
 *
 * plain:
 *      Plain borders around table and cells, vertical margins, styled caption.
 *      Best for small tables or for complex tables for tables with cells that span
 *      rows and columns, when the "striped" style does not work well.
 *
 * striped:
 *      Borders around the table and vertical borders between cells, striped rows,
 *      vertical margins, styled caption.
 *      Best for tables that have a header row, and a body containing a series of simple rows.
 */

table.borderless,
table.plain,
table.striped {
    margin-top: 10px;
    margin-bottom: 10px;
}

table.borderless>caption,
table.plain>caption,
table.striped>caption {
    font-weight: bold;
    font-size: smaller;
}

table.borderless th,
table.borderless td,
table.plain th,
table.plain td,
table.striped th,
table.striped td {
    padding: 2px 5px;
}

table.borderless,
table.borderless>thead>tr>th,
table.borderless>tbody>tr>th,
table.borderless>tr>th,
table.borderless>thead>tr>td,
table.borderless>tbody>tr>td,
table.borderless>tr>td {
    border: none;
}

table.borderless>thead>tr,
table.borderless>tbody>tr,
table.borderless>tr {
    background-color: transparent;
}

table.plain {
    border-collapse: collapse;
    border: 1px solid black;
}

table.plain>thead>tr,
table.plain>tbody tr,
table.plain>tr {
    background-color: transparent;
}

table.plain>thead>tr>th,
table.plain>tbody>tr>th,
table.plain>tr>th,
table.plain>thead>tr>td,
table.plain>tbody>tr>td,
table.plain>tr>td {
    border: 1px solid black;
}

table.striped {
    border-collapse: collapse;
    border: 1px solid black;
}

table.striped>thead {
    background-color: #E3E3E3;
}

table.striped>thead>tr>th,
table.striped>thead>tr>td {
    border: 1px solid black;
}

table.striped>tbody>tr:nth-child(even) {
    background-color: #EEE
}

table.striped>tbody>tr:nth-child(odd) {
    background-color: #FFF
}

table.striped>tbody>tr>th,
table.striped>tbody>tr>td {
    border-left: 1px solid black;
    border-right: 1px solid black;
}

table.striped>tbody>tr>th {
    font-weight: normal;
}
</style><h1>Interface IFormulaOptions</h1>
<!-- ======== START OF CLASS DATA ======== -->

<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">IFormulaOptions</span></div>
<div class="block">Represents the options related to formula calculation, performance, and error handling. <p>Use this interface to configure workbook-level formula behavior, such as  iterative calculation and its related limits. Obtain an instance from  <a href="IExcelOptions.html#getFormulas()"><code>IExcelOptions.getFormulas()</code></a>.</p>
<pre><code data-language="Java">
 IFormulaOptions formulaOptions = workbook.getOptions().getFormulas();
 formulaOptions.setEnableIterativeCalculation(true);
 formulaOptions.setMaximumIterations(2);
 IWorksheet sheet = workbook.getActiveSheet();
 sheet.getRange("B1").setFormula("=A1+1");
 sheet.getRange("C1").setFormula("=B1+1");
 sheet.getRange("D1").setFormula("=C1+1");
 sheet.getRange("A1").setFormula("=D1+1");
 Object value = sheet.getRange("A1").getValue();
 </code></pre></div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div aria-orientation="horizontal" class="table-tabs" role="tablist"><button aria-controls="method-summary-table.tabpanel" aria-selected="true" class="active-table-tab" id="method-summary-table-tab0" onclick="show('method-summary-table', 'method-summary-table', 3)" onkeydown="switchTab(event)" role="tab" tabindex="0">All Methods</button><button aria-controls="method-summary-table.tabpanel" aria-selected="false" class="table-tab" id="method-summary-table-tab2" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" onkeydown="switchTab(event)" role="tab" tabindex="-1">Instance Methods</button><button aria-controls="method-summary-table.tabpanel" aria-selected="false" class="table-tab" id="method-summary-table-tab3" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" onkeydown="switchTab(event)" role="tab" tabindex="-1">Abstract Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div aria-labelledby="method-summary-table-tab0" class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="CalculationMode.html" title="enum class in com.grapecity.documents.excel">CalculationMode</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getCalculationMode()">getCalculationMode</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the calculation mode stored in the exported workbook.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getEnableIterativeCalculation()">getEnableIterativeCalculation</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets whether iterative calculation is enabled for formulas with circular references.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>double</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getMaximumChange()">getMaximumChange</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the maximum error for iterative calculation.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>int</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getMaximumIterations()">getMaximumIterations</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the maximum iterations of iterative calculation.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#setCalculationMode(com.grapecity.documents.excel.CalculationMode)">setCalculationMode</a><wbr>(<a href="CalculationMode.html" title="enum class in com.grapecity.documents.excel">CalculationMode</a>&nbsp;calculationMode)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Sets the calculation mode stored in the exported workbook.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#setEnableIterativeCalculation(boolean)">setEnableIterativeCalculation</a><wbr>(boolean&nbsp;value)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Sets whether iterative calculation is enabled for formulas with circular references.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#setMaximumChange(double)">setMaximumChange</a><wbr>(double&nbsp;value)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Sets the maximum error for iterative calculation.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#setMaximumIterations(int)">setMaximumIterations</a><wbr>(int&nbsp;value)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Sets the maximum iterations of iterative calculation.</div>
</div>
</div>
</div>
</div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="getEnableIterativeCalculation()">
<h3>getEnableIterativeCalculation</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">getEnableIterativeCalculation</span>()</div>
<div class="block">Gets whether iterative calculation is enabled for formulas with circular references. <p>When enabled, the workbook iteratively calculates formulas that contain circular  references until the maximum number of iterations or maximum error threshold is reached.</p>
<pre><code data-language="Java">
 IFormulaOptions formulaOptions = workbook.getOptions().getFormulas();
 formulaOptions.setEnableIterativeCalculation(true);
 formulaOptions.setMaximumIterations(10);
 boolean enabled = formulaOptions.getEnableIterativeCalculation();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if iterative calculation is enabled for formulas with circular references; otherwise,  <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setEnableIterativeCalculation(boolean)">
<h3>setEnableIterativeCalculation</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setEnableIterativeCalculation</span><wbr><span class="parameters">(boolean&nbsp;value)</span></div>
<div class="block">Sets whether iterative calculation is enabled for formulas with circular references. <p>When enabled, the workbook iteratively calculates formulas that contain circular  references until the maximum number of iterations or maximum error threshold is reached.</p>
<pre><code data-language="Java">
 IFormulaOptions formulaOptions = workbook.getOptions().getFormulas();
 formulaOptions.setEnableIterativeCalculation(true);
 formulaOptions.setMaximumIterations(10);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - <code>true</code> to enable iterative calculation for formulas with circular references; otherwise,  <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getMaximumIterations()">
<h3>getMaximumIterations</h3>
<div class="member-signature"><span class="return-type">int</span>&nbsp;<span class="element-name">getMaximumIterations</span>()</div>
<div class="block">Gets the maximum iterations of iterative calculation. <p>When iterative calculation is enabled, formulas are recalculated until the  maximum number of iterations is reached or the maximum error threshold is met.</p>
<pre><code data-language="Java">
 IFormulaOptions formulaOptions = workbook.getOptions().getFormulas();
 formulaOptions.setEnableIterativeCalculation(true);
 formulaOptions.setMaximumIterations(10);
 int maximumIterations = formulaOptions.getMaximumIterations();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The maximum number of iterations allowed for iterative calculation.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setMaximumIterations(int)">
<h3>setMaximumIterations</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setMaximumIterations</span><wbr><span class="parameters">(int&nbsp;value)</span></div>
<div class="block">Sets the maximum iterations of iterative calculation. <p>When iterative calculation is enabled, formulas are recalculated until the  maximum number of iterations is reached or the maximum error threshold is met.</p>
<pre><code data-language="Java">
 IFormulaOptions formulaOptions = workbook.getOptions().getFormulas();
 formulaOptions.setEnableIterativeCalculation(true);
 formulaOptions.setMaximumIterations(10);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - The maximum number of iterations allowed for iterative calculation.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getMaximumChange()">
<h3>getMaximumChange</h3>
<div class="member-signature"><span class="return-type">double</span>&nbsp;<span class="element-name">getMaximumChange</span>()</div>
<div class="block">Gets the maximum error for iterative calculation. <p>During iterative calculation, this value specifies the maximum difference allowed  between the results of two consecutive iterations. Iteration stops when the difference  is less than this value.</p>
<pre><code data-language="Java">
 workbook.getOptions().getFormulas().setMaximumChange(0.01d);
 double maximumChange = workbook.getOptions().getFormulas().getMaximumChange();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The maximum error allowed for iterative calculation.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setMaximumChange(double)">
<h3>setMaximumChange</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setMaximumChange</span><wbr><span class="parameters">(double&nbsp;value)</span></div>
<div class="block">Sets the maximum error for iterative calculation. <p>During iterative calculation, this value specifies the maximum difference allowed  between the results of two consecutive iterations. Iteration stops when the difference  is less than this value.</p>
<pre><code data-language="Java">
 IFormulaOptions formulaOptions = workbook.getOptions().getFormulas();
 formulaOptions.setMaximumChange(0.01d);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - The maximum error allowed for iterative calculation.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getCalculationMode()">
<h3>getCalculationMode</h3>
<div class="member-signature"><span class="return-type"><a href="CalculationMode.html" title="enum class in com.grapecity.documents.excel">CalculationMode</a></span>&nbsp;<span class="element-name">getCalculationMode</span>()</div>
<div class="block">Gets the calculation mode stored in the exported workbook. <p>This setting controls how Microsoft Excel recalculates formulas when the exported workbook is opened.  It does not trigger calculation or control formula calculation in the current GcExcel workbook.  To control calculation in the current workbook, use  <a href="Workbook.html#setEnableCalculation(boolean)"><code>Workbook.setEnableCalculation(boolean)</code></a>.</p>
<pre><code data-language="Java">
 workbook.getOptions().getFormulas().setCalculationMode(CalculationMode.Manual);
 CalculationMode mode = workbook.getOptions().getFormulas().getCalculationMode();
 if (mode == CalculationMode.Manual) {
     workbook.save("path/to/manual-mode.xlsx");
 }
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The calculation mode stored in the exported workbook.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setCalculationMode(com.grapecity.documents.excel.CalculationMode)">
<h3>setCalculationMode</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setCalculationMode</span><wbr><span class="parameters">(<a href="CalculationMode.html" title="enum class in com.grapecity.documents.excel">CalculationMode</a>&nbsp;calculationMode)</span></div>
<div class="block">Sets the calculation mode stored in the exported workbook. <p>This setting controls how Microsoft Excel recalculates formulas when the exported workbook is opened.  It does not trigger calculation or control formula calculation in the current GcExcel workbook.  To control calculation in the current workbook, use  <a href="Workbook.html#setEnableCalculation(boolean)"><code>Workbook.setEnableCalculation(boolean)</code></a>.</p>
<pre><code data-language="Java">
 IFormulaOptions formulaOptions = workbook.getOptions().getFormulas();
 workbook.getActiveSheet().getRange("A1").setFormula("SUM(1, 2)");
 formulaOptions.setCalculationMode(CalculationMode.Manual);
 workbook.save("path/to/manual-mode.xlsx");
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>calculationMode</code> - The calculation mode to store in the exported workbook. Must not be <code>null</code>.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
<script>var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";

function show(tableId, selected, columns) {
    if (tableId !== selected) {
        document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')')
            .forEach(function (elem) {
                elem.style.display = 'none';
            });
    }
    document.querySelectorAll('div.' + selected)
        .forEach(function (elem, index) {
            elem.style.display = '';
            var isEvenRow = index % (columns * 2) < columns;
            elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor);
            elem.classList.add(isEvenRow ? evenRowColor : oddRowColor);
        });
    updateTabs(tableId, selected);
}

function updateTabs(tableId, selected) {
    document.querySelector('div#' + tableId + ' .summary-table')
        .setAttribute('aria-labelledby', selected);
    document.querySelectorAll('button[id^="' + tableId + '"]')
        .forEach(function (tab, index) {
            if (selected === tab.id || (tableId === selected && index === 0)) {
                tab.className = activeTableTab;
                tab.setAttribute('aria-selected', true);
                tab.setAttribute('tabindex', 0);
            } else {
                tab.className = tableTab;
                tab.setAttribute('aria-selected', false);
                tab.setAttribute('tabindex', -1);
            }
        });
}

function switchTab(e) {
    var selected = document.querySelector('[aria-selected=true]');
    if (selected) {
        if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) {
            // left or up arrow key pressed: move focus to previous tab
            selected.previousSibling.click();
            selected.previousSibling.focus();
            e.preventDefault();
        } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) {
            // right or down arrow key pressed: move focus to next tab
            selected.nextSibling.click();
            selected.nextSibling.focus();
            e.preventDefault();
        }
    }
}
</script></div>