# XlsxSaveOptions

## 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>Class XlsxSaveOptions</h1>
<!-- ======== START OF CLASS DATA ======== -->

<div class="inheritance" title="Inheritance Tree"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang">java.lang.Object</a>
<div class="inheritance"><a href="SaveOptionsBase.html" title="class in com.grapecity.documents.excel">com.grapecity.documents.excel.SaveOptionsBase</a>
<div class="inheritance">com.grapecity.documents.excel.XlsxSaveOptions</div>
</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="XlsmSaveOptions.html" title="class in com.grapecity.documents.excel">XlsmSaveOptions</a></code>, <code><a href="XltxSaveOptions.html" title="class in com.grapecity.documents.excel">XltxSaveOptions</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">XlsxSaveOptions</span>
<span class="extends-implements">extends <a href="SaveOptionsBase.html" title="class in com.grapecity.documents.excel">SaveOptionsBase</a></span></div>
<div class="block">Represents options for saving a workbook as an .xlsx file. <p>Use this class to control how GcExcel exports workbook content to the XLSX format.  It supports settings for password protection, shared formula export, compact mode,  formula handling, binding source export, auto-merged cells, and excluding unused  styles, names, or empty region cells to reduce file size.</p>
<pre><code data-language="Java">
 XlsxSaveOptions options = new XlsxSaveOptions();
 String password = getWorkbookPassword();
 options.setPassword(password);
 options.setExcludeUnusedStyles(true);
 options.setExportSharedFormula(false);
 workbook.save("path/to/output.xlsx", options);
 </code></pre></div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a class="member-name-link" href="#%3Cinit%3E()">XlsxSaveOptions</a>()</code></div>
<div class="col-last even-row-color">
<div class="block">Creates a new instance of  <a href="XlsxSaveOptions.html" title="class in com.grapecity.documents.excel"><code>XlsxSaveOptions</code></a>.</div>
</div>
</div>
</section>
</li>
<!-- ========== 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-tab4" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" onkeydown="switchTab(event)" role="tab" tabindex="-1">Concrete 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-tab4"><code>final boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a class="member-name-link" href="#getExcludeEmptyRegionCells()">getExcludeEmptyRegionCells</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Gets whether to exclude empty cells outside the used data range when saving the workbook.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a class="member-name-link" href="#getExcludeUnusedNames()">getExcludeUnusedNames</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Gets whether user-defined but unused defined names are excluded when saving the workbook to an XLSX file.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a class="member-name-link" href="#getExcludeUnusedStyles()">getExcludeUnusedStyles</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Gets whether user-defined but unused cell styles are excluded when saving the workbook to an XLSX file.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a class="member-name-link" href="#getExportSharedFormula()">getExportSharedFormula</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Gets whether to export shared formulas when saving the workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a class="member-name-link" href="#getIgnoreFormulas()">getIgnoreFormulas</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Gets whether formula cells are treated as value cells when saving to an .xlsx file.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a class="member-name-link" href="#getIncludeAutoMergedCells()">getIncludeAutoMergedCells</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Gets whether automatically merged cells are included when saving the workbook to an .xlsx file.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a class="member-name-link" href="#getIncludeBindingSource()">getIncludeBindingSource</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Gets whether to include the binding source when saving the file.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a class="member-name-link" href="#getIsCompactMode()">getIsCompactMode</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Gets whether to save the workbook in compact mode.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a class="member-name-link" href="#getPassword()">getPassword</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Gets the password used to encrypt the saved xlsx file.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a class="member-name-link" href="#setExcludeEmptyRegionCells(boolean)">setExcludeEmptyRegionCells</a><wbr>(boolean&nbsp;value)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets whether to exclude empty cells outside the used data range when saving the workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a class="member-name-link" href="#setExcludeUnusedNames(boolean)">setExcludeUnusedNames</a><wbr>(boolean&nbsp;value)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets whether user-defined but unused defined names are excluded when saving the workbook to an XLSX file.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a class="member-name-link" href="#setExcludeUnusedStyles(boolean)">setExcludeUnusedStyles</a><wbr>(boolean&nbsp;value)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets whether user-defined but unused cell styles are excluded when saving the workbook to an XLSX file.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a class="member-name-link" href="#setExportSharedFormula(boolean)">setExportSharedFormula</a><wbr>(boolean&nbsp;value)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets whether to export shared formulas when saving the workbook.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a class="member-name-link" href="#setIgnoreFormulas(boolean)">setIgnoreFormulas</a><wbr>(boolean&nbsp;value)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets whether formula cells are treated as value cells when saving to an .xlsx file.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a class="member-name-link" href="#setIncludeAutoMergedCells(boolean)">setIncludeAutoMergedCells</a><wbr>(boolean&nbsp;value)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets whether automatically merged cells are included when saving the workbook to an .xlsx file.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a class="member-name-link" href="#setIncludeBindingSource(boolean)">setIncludeBindingSource</a><wbr>(boolean&nbsp;value)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets whether to include the binding source when saving the file.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a class="member-name-link" href="#setIsCompactMode(boolean)">setIsCompactMode</a><wbr>(boolean&nbsp;value)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets whether to save the workbook in compact mode.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a class="member-name-link" href="#setPassword(java.lang.String)">setPassword</a><wbr>(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a>&nbsp;value)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets the password used to encrypt the saved xlsx file.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a class="member-name-link" href="#toString()">toString</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a string representation of these XLSX save options.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-com.grapecity.documents.excel.SaveOptionsBase">Methods inherited from class&nbsp;com.grapecity.documents.excel.<a href="SaveOptionsBase.html" title="class in com.grapecity.documents.excel">SaveOptionsBase</a></h3>
<code><a href="SaveOptionsBase.html#getFileFormat()">getFileFormat</a>, <a href="SaveOptionsBase.html#setFileFormat(com.grapecity.documents.excel.SaveFileFormat)">setFileFormat</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang">Object</a></h3>
<code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang">clone</a>, <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang">finalize</a>, <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang">getClass</a>, <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang">hashCode</a>, <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang">notify</a>, <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang">wait</a>, <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang">wait</a>, <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="<init>()">
<h3>XlsxSaveOptions</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">XlsxSaveOptions</span>()</div>
<div class="block">Creates a new instance of  <a href="XlsxSaveOptions.html" title="class in com.grapecity.documents.excel"><code>XlsxSaveOptions</code></a>. <p>This constructor initializes the option object to use  <a href="SaveFileFormat.html#Xlsx"><code>SaveFileFormat.Xlsx</code></a>. Configure XLSX-specific settings before passing  the options to a workbook save API.</p>
<pre><code data-language="Java">
 XlsxSaveOptions options = new XlsxSaveOptions();
 String password = getWorkbookPassword();
 options.setPassword(password);
 options.setExcludeUnusedStyles(true);
 options.setExportSharedFormula(false);
 workbook.save("path/to/output.xlsx", options);
 </code></pre></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="getExportSharedFormula()">
<h3>getExportSharedFormula</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">getExportSharedFormula</span>()</div>
<div class="block">Gets whether to export shared formulas when saving the workbook. <p>Shared formula export is enabled by default. This option can be useful when working  with third-party libraries that do not support shared formulas.</p>
<pre><code data-language="Java">
 XlsxSaveOptions options = new XlsxSaveOptions();
 options.setExportSharedFormula(false);
 boolean exportSharedFormula = options.getExportSharedFormula();
 workbook.save("path/to/output.xlsx", options);
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if shared formulas are exported when saving the workbook; otherwise, <code>false</code>.  The default value is  <code>true</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setExportSharedFormula(boolean)">
<h3>setExportSharedFormula</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setExportSharedFormula</span><wbr><span class="parameters">(boolean&nbsp;value)</span></div>
<div class="block">Sets whether to export shared formulas when saving the workbook. <p>Shared formula export is enabled by default. This option can be useful when working  with third-party libraries that do not support shared formulas.</p>
<pre><code data-language="Java">
 XlsxSaveOptions options = new XlsxSaveOptions();
 options.setExportSharedFormula(false);
 workbook.save("path/to/output.xlsx", options);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - <code>true</code> if shared formulas are exported when saving the workbook; otherwise, <code>false</code>.  The default value is  <code>true</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getPassword()">
<h3>getPassword</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></span>&nbsp;<span class="element-name">getPassword</span>()</div>
<div class="block">Gets the password used to encrypt the saved xlsx file. <p>Use this method to retrieve the password configured on this  <a href="XlsxSaveOptions.html" title="class in com.grapecity.documents.excel"><code>XlsxSaveOptions</code></a> instance before saving a workbook with password protection.</p>
<pre><code data-language="Java">
 XlsxSaveOptions options = new XlsxSaveOptions();
 String configuredPassword = getWorkbookPassword();
 options.setPassword(configuredPassword);
 String password = options.getPassword();
 workbook.save("path/to/output.xlsx", options);
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The password used to encrypt the saved xlsx file, or <code>null</code> if no password has been set.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setPassword(java.lang.String)">
<h3>setPassword</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setPassword</span><wbr><span class="parameters">(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a>&nbsp;value)</span></div>
<div class="block">Sets the password used to encrypt the saved xlsx file. <p>Use this method to set the password configured on this XlsxSaveOptions instance before saving a workbook with password protection.</p>
<pre><code data-language="Java">
 XlsxSaveOptions options = new XlsxSaveOptions();
 String password = getWorkbookPassword();
 options.setPassword(password);
 workbook.save("path/to/output.xlsx", options);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - The password used to encrypt the saved xlsx file, or <code>null</code> if no password has been set.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getIsCompactMode()">
<h3>getIsCompactMode</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">getIsCompactMode</span>()</div>
<div class="block">Gets whether to save the workbook in compact mode. <p>When this option is  <code>true</code>, the generated .xlsx content is written in a more compact form.  For example, during export, explicit row and cell references can be omitted for contiguous rows  and columns. The default value is  <code>false</code>.</p>
<pre><code data-language="Java">
 XlsxSaveOptions options = new XlsxSaveOptions();
 options.setIsCompactMode(true);
 boolean compactMode = options.getIsCompactMode();
 workbook.save("path/to/output.xlsx", options);
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if the workbook is saved in compact mode; otherwise, <code>false</code>.  The default value is  <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setIsCompactMode(boolean)">
<h3>setIsCompactMode</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setIsCompactMode</span><wbr><span class="parameters">(boolean&nbsp;value)</span></div>
<div class="block">Sets whether to save the workbook in compact mode. <p>When this option is  <code>true</code>, the generated .xlsx content is written in a more compact form.  For example, during export, explicit row and cell references can be omitted for contiguous rows  and columns. The default value is  <code>false</code>.</p>
<pre><code data-language="Java">
 XlsxSaveOptions options = new XlsxSaveOptions();
 options.setIsCompactMode(true);
 workbook.save("path/to/output.xlsx", options);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - <code>true</code> if the workbook is saved in compact mode; otherwise, <code>false</code>.  The default value is  <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getIgnoreFormulas()">
<h3>getIgnoreFormulas</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">getIgnoreFormulas</span>()</div>
<div class="block">Gets whether formula cells are treated as value cells when saving to an .xlsx file. <p>When this property is  <code>true</code>, formula cells are exported as value cells in Excel instead of preserving their formulas.</p>
<pre><code data-language="Java">
 XlsxSaveOptions options = new XlsxSaveOptions();
 options.setIgnoreFormulas(true);
 boolean ignoreFormulas = options.getIgnoreFormulas();
 workbook.save("path/to/output.xlsx", options);
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if formula cells are exported as value cells when saving; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setIgnoreFormulas(boolean)">
<h3>setIgnoreFormulas</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setIgnoreFormulas</span><wbr><span class="parameters">(boolean&nbsp;value)</span></div>
<div class="block">Sets whether formula cells are treated as value cells when saving to an .xlsx file. <p>When this property is  <code>true</code>, formula cells are exported as value cells in Excel instead of preserving their formulas.</p>
<pre><code data-language="Java">
 XlsxSaveOptions options = new XlsxSaveOptions();
 options.setIgnoreFormulas(true);
 workbook.save("path/to/output.xlsx", options);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - <code>true</code> if formula cells are exported as value cells when saving; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getExcludeUnusedStyles()">
<h3>getExcludeUnusedStyles</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">getExcludeUnusedStyles</span>()</div>
<div class="block">Gets whether user-defined but unused cell styles are excluded when saving the workbook to an XLSX file. <p>If this property is  <code>true</code>, user-defined cell styles that are never applied in the workbook are omitted during export. The default value is  <code>false</code>.</p>
<pre><code data-language="Java">
 XlsxSaveOptions options = new XlsxSaveOptions();
 options.setExcludeUnusedStyles(true);
 boolean excludeUnusedStyles = options.getExcludeUnusedStyles();
 workbook.save("path/to/output.xlsx", options);
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if unused user-defined cell styles are excluded during XLSX export; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setExcludeUnusedStyles(boolean)">
<h3>setExcludeUnusedStyles</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setExcludeUnusedStyles</span><wbr><span class="parameters">(boolean&nbsp;value)</span></div>
<div class="block">Sets whether user-defined but unused cell styles are excluded when saving the workbook to an XLSX file. <p>If this property is  <code>true</code>, user-defined cell styles that are never applied in the workbook are omitted during export. The default value is  <code>false</code>.</p>
<pre><code data-language="Java">
 XlsxSaveOptions options = new XlsxSaveOptions();
 options.setExcludeUnusedStyles(true);
 workbook.save("path/to/output.xlsx", options);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - <code>true</code> if unused user-defined cell styles are excluded during XLSX export; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getExcludeUnusedNames()">
<h3>getExcludeUnusedNames</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">getExcludeUnusedNames</span>()</div>
<div class="block">Gets whether user-defined but unused defined names are excluded when saving the workbook to an XLSX file. <p>If this property is  <code>true</code>, unused defined names are omitted during export. The default value is  <code>false</code>.</p>
<pre><code data-language="Java">
 XlsxSaveOptions options = new XlsxSaveOptions();
 options.setExcludeUnusedNames(true);
 boolean excludeUnusedNames = options.getExcludeUnusedNames();
 workbook.save("path/to/output.xlsx", options);
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if unused defined names are excluded during XLSX export; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setExcludeUnusedNames(boolean)">
<h3>setExcludeUnusedNames</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setExcludeUnusedNames</span><wbr><span class="parameters">(boolean&nbsp;value)</span></div>
<div class="block">Sets whether user-defined but unused defined names are excluded when saving the workbook to an XLSX file. <p>If this property is  <code>true</code>, unused defined names are omitted during export. The default value is  <code>false</code>.</p>
<pre><code data-language="Java">
 XlsxSaveOptions options = new XlsxSaveOptions();
 options.setExcludeUnusedNames(true);
 workbook.save("path/to/output.xlsx", options);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - <code>true</code> if unused defined names are excluded during XLSX export; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getExcludeEmptyRegionCells()">
<h3>getExcludeEmptyRegionCells</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">getExcludeEmptyRegionCells</span>()</div>
<div class="block">Gets whether to exclude empty cells outside the used data range when saving the workbook. <p>Empty cells in this context are cells that contain no data or only style information.  When this option is  <code>true</code>, those cells are excluded during save. The default value is  <code>false</code>.</p>
<pre><code data-language="Java">
 XlsxSaveOptions options = new XlsxSaveOptions();
 options.setExcludeEmptyRegionCells(true);
 boolean excludeEmptyRegionCells = options.getExcludeEmptyRegionCells();
 workbook.save("path/to/output.xlsx", options);
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if empty cells outside the used data range are excluded when saving the workbook; otherwise,  <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setExcludeEmptyRegionCells(boolean)">
<h3>setExcludeEmptyRegionCells</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setExcludeEmptyRegionCells</span><wbr><span class="parameters">(boolean&nbsp;value)</span></div>
<div class="block">Sets whether to exclude empty cells outside the used data range when saving the workbook. <p>Empty cells in this context are cells that contain no data or only style information.  When this option is  <code>true</code>, those cells are excluded during save. The default value is  <code>false</code>.</p>
<pre><code data-language="Java">
 XlsxSaveOptions options = new XlsxSaveOptions();
 options.setExcludeEmptyRegionCells(true);
 workbook.save("path/to/output.xlsx", options);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - <code>true</code> if empty cells outside the used data range are excluded when saving the workbook; otherwise,  <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getIncludeBindingSource()">
<h3>getIncludeBindingSource</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">getIncludeBindingSource</span>()</div>
<div class="block">Gets whether to include the binding source when saving the file. <p>This property controls whether a bound data source is exported to the .xlsx file. The default value is  <code>true</code>.</p>
<pre><code data-language="Java">
 XlsxSaveOptions options = new XlsxSaveOptions();
 options.setIncludeBindingSource(false);
 boolean includeBindingSource = options.getIncludeBindingSource();
 workbook.save("path/to/output.xlsx", options);
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if the binding source is included when saving the file; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setIncludeBindingSource(boolean)">
<h3>setIncludeBindingSource</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setIncludeBindingSource</span><wbr><span class="parameters">(boolean&nbsp;value)</span></div>
<div class="block">Sets whether to include the binding source when saving the file. <p>This property controls whether a bound data source is exported to the .xlsx file. The default value is  <code>true</code>.</p>
<pre><code data-language="Java">
 XlsxSaveOptions options = new XlsxSaveOptions();
 options.setIncludeBindingSource(false);
 workbook.save("path/to/output.xlsx", options);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - <code>true</code> if the binding source is included when saving the file; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getIncludeAutoMergedCells()">
<h3>getIncludeAutoMergedCells</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">getIncludeAutoMergedCells</span>()</div>
<div class="block">Gets whether automatically merged cells are included when saving the workbook to an .xlsx file. <p>When this option is  <code>true</code>, auto-merge information is included during export so the automatically  merged cells are written to the .xlsx file. The default value is  <code>false</code>.</p>
<pre><code data-language="Java">
 XlsxSaveOptions options = new XlsxSaveOptions();
 options.setIncludeAutoMergedCells(true);
 boolean includeAutoMergedCells = options.getIncludeAutoMergedCells();
 workbook.save("path/to/output.xlsx", options);
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if automatically merged cells are included when saving the workbook; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setIncludeAutoMergedCells(boolean)">
<h3>setIncludeAutoMergedCells</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setIncludeAutoMergedCells</span><wbr><span class="parameters">(boolean&nbsp;value)</span></div>
<div class="block">Sets whether automatically merged cells are included when saving the workbook to an .xlsx file. <p>When this option is  <code>true</code>, auto-merge information is included during export so the automatically  merged cells are written to the .xlsx file. The default value is  <code>false</code>.</p>
<pre><code data-language="Java">
 XlsxSaveOptions options = new XlsxSaveOptions();
 options.setIncludeAutoMergedCells(true);
 workbook.save("path/to/output.xlsx", options);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - <code>true</code> if automatically merged cells are included when saving the workbook; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="toString()">
<h3>toString</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang">String</a></span>&nbsp;<span class="element-name">toString</span>()</div>
<div class="block">Returns a string representation of these XLSX save options.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang">Object</a></code></dd>
<dt>Returns:</dt>
<dd>A string representation of these XLSX save options.</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>