# SjsSaveOptions

## 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 SjsSaveOptions</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.SjsSaveOptions</div>
</div>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">SjsSaveOptions</span>
<span class="extends-implements">extends <a href="SaveOptionsBase.html" title="class in com.grapecity.documents.excel">SaveOptionsBase</a></span></div>
<div class="block">Options for saving a workbook as a SpreadJS `.sjs` file. <p>Use this class to control which workbook content is included when exporting to `.sjs`,  such as styles, formulas, unused names, empty cells outside the used range, binding  sources, automatically merged cells, and data outside the defined row and column counts.  By default, styles, formulas, unused names, empty region cells, and binding sources are  included, while automatically merged cells are not included and data outside  <code>RowCount</code> and <code>ColumnCount</code> is not ignored.</p><p>This class can be used with  <a href="Workbook.html#save(java.lang.String,com.grapecity.documents.excel.SaveOptionsBase)"><code>Workbook.save(String,SaveOptionsBase)</code></a> to write an`.sjs` file, or with  <a href="Workbook.html#toSjsJson(com.grapecity.documents.excel.SjsSaveOptions)"><code>Workbook.toSjsJson(SjsSaveOptions)</code></a> to generate a single JSON string from the `.sjs` content.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue("Name");
 SjsSaveOptions options = new SjsSaveOptions();
 options.setIncludeStyles(false);
 String json = workbook.toSjsJson(options);
 workbook.save("path/to/output.sjs", 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()">SjsSaveOptions</a>()</code></div>
<div class="col-last even-row-color">
<div class="block">Creates an options instance for saving SpreadJS  <code>.sjs</code> content.</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>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="#getIgnoreRangeOutOfRowColumnCount()">getIgnoreRangeOutOfRowColumnCount</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 data outside the worksheet  <code>RowCount</code> and <code>ColumnCount</code> is ignored when exporting to an .sjs 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="#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 to include automatically merged cells when saving a 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="#getIncludeEmptyRegionCells()">getIncludeEmptyRegionCells</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 empty cells outside the used data range are included when saving to an SJS 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="#getIncludeFormulas()">getIncludeFormulas</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 formulas can be included 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="#getIncludeStyles()">getIncludeStyles</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 styles are included when saving files.</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="#getIncludeUnusedNames()">getIncludeUnusedNames</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 unused custom names are included 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>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="#setIgnoreRangeOutOfRowColumnCount(boolean)">setIgnoreRangeOutOfRowColumnCount</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 data outside the worksheet  <code>RowCount</code> and <code>ColumnCount</code> is ignored when exporting to an .sjs 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="#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 to include automatically merged cells when saving a 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="#setIncludeEmptyRegionCells(boolean)">setIncludeEmptyRegionCells</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 empty cells outside the used data range are included when saving to an SJS 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="#setIncludeFormulas(boolean)">setIncludeFormulas</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 formulas can be included 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="#setIncludeStyles(boolean)">setIncludeStyles</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 styles are included when saving files.</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="#setIncludeUnusedNames(boolean)">setIncludeUnusedNames</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 unused custom names are included when saving the file.</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#toString()" title="class or interface in java.lang">toString</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>SjsSaveOptions</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">SjsSaveOptions</span>()</div>
<div class="block">Creates an options instance for saving SpreadJS  <code>.sjs</code> content.<p>This constructor configures the file format to  <a href="SaveFileFormat.html#Sjs"><code>SaveFileFormat.Sjs</code></a>.</p>
<pre><code data-language="Java">
 SjsSaveOptions options = new SjsSaveOptions();
 workbook.save("path/to/output.sjs", 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="getIncludeStyles()">
<h3>getIncludeStyles</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">getIncludeStyles</span>()</div>
<div class="block">Gets whether styles are included when saving files. <p>This option controls whether style information is written when exporting to the  SpreadJS .sjs format. By default, the value is  <code>true</code>.</p>
<pre><code data-language="Java">
 SjsSaveOptions options = new SjsSaveOptions();
 options.setIncludeStyles(false);

 boolean includeStyles = options.getIncludeStyles();
 workbook.save("path/to/output.sjs", options);
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if styles are included when saving files; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setIncludeStyles(boolean)">
<h3>setIncludeStyles</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setIncludeStyles</span><wbr><span class="parameters">(boolean&nbsp;value)</span></div>
<div class="block">Sets whether styles are included when saving files. <p>This option controls whether style information is written when exporting to the  SpreadJS .sjs format. By default, the value is  <code>true</code>.</p>
<pre><code data-language="Java">
 SjsSaveOptions options = new SjsSaveOptions();
 options.setIncludeStyles(false);

 workbook.save("path/to/output.sjs", options);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - <code>true</code> if styles are included when saving files; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getIncludeFormulas()">
<h3>getIncludeFormulas</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">getIncludeFormulas</span>()</div>
<div class="block">Gets whether formulas can be included when saving the file. <p>The default value is  <code>true</code>.</p>
<pre><code data-language="Java">
 SjsSaveOptions options = new SjsSaveOptions();
 options.setIncludeFormulas(false);

 boolean includeFormulas = options.getIncludeFormulas();
 workbook.save("path/to/output.sjs", options);
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if formulas are included when saving the file; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setIncludeFormulas(boolean)">
<h3>setIncludeFormulas</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setIncludeFormulas</span><wbr><span class="parameters">(boolean&nbsp;value)</span></div>
<div class="block">Sets whether formulas can be included when saving the file. <p>The default value is  <code>true</code>.</p>
<pre><code data-language="Java">
 SjsSaveOptions options = new SjsSaveOptions();
 options.setIncludeFormulas(false);

 workbook.save("path/to/output.sjs", options);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - <code>true</code> if formulas are included when saving the file; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getIncludeUnusedNames()">
<h3>getIncludeUnusedNames</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">getIncludeUnusedNames</span>()</div>
<div class="block">Gets whether unused custom names are included when saving the file. <p>This property applies to  <a href="SjsSaveOptions.html" title="class in com.grapecity.documents.excel"><code>SjsSaveOptions</code></a> when exporting to the SpreadJS.sjs format. If this property is  <code>true</code>, unused custom names are included  in the saved file. By default, the value is  <code>true</code>.</p>
<pre><code data-language="Java">
 SjsSaveOptions options = new SjsSaveOptions();
 options.setIncludeUnusedNames(false);

 boolean includeUnusedNames = options.getIncludeUnusedNames();
 workbook.save("path/to/output.sjs", options);
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if unused custom names are included when saving the file; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setIncludeUnusedNames(boolean)">
<h3>setIncludeUnusedNames</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setIncludeUnusedNames</span><wbr><span class="parameters">(boolean&nbsp;value)</span></div>
<div class="block">Sets whether unused custom names are included when saving the file. <p>This property applies to  <a href="SjsSaveOptions.html" title="class in com.grapecity.documents.excel"><code>SjsSaveOptions</code></a> when exporting to the SpreadJS.sjs format. If this property is  <code>true</code>, unused custom names are included  in the saved file. By default, the value is  <code>true</code>.</p>
<pre><code data-language="Java">
 SjsSaveOptions options = new SjsSaveOptions();
 options.setIncludeUnusedNames(false);

 workbook.save("path/to/output.sjs", options);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - <code>true</code> if unused custom names are included when saving the file; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getIncludeEmptyRegionCells()">
<h3>getIncludeEmptyRegionCells</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">getIncludeEmptyRegionCells</span>()</div>
<div class="block">Gets whether empty cells outside the used data range are included when saving to an SJS file. <p>The default value is  <code>true</code>.</p>
<pre><code data-language="Java">
 SjsSaveOptions options = new SjsSaveOptions();
 options.setIncludeEmptyRegionCells(false);

 boolean includeEmptyRegionCells = options.getIncludeEmptyRegionCells();
 workbook.save("path/to/output.sjs", options);
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if empty cells outside the used data range are included during SJS export; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setIncludeEmptyRegionCells(boolean)">
<h3>setIncludeEmptyRegionCells</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setIncludeEmptyRegionCells</span><wbr><span class="parameters">(boolean&nbsp;value)</span></div>
<div class="block">Sets whether empty cells outside the used data range are included when saving to an SJS file. <p>The default value is  <code>true</code>.</p>
<pre><code data-language="Java">
 SjsSaveOptions options = new SjsSaveOptions();
 options.setIncludeEmptyRegionCells(false);

 workbook.save("path/to/output.sjs", 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 included during SJS export; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getIgnoreRangeOutOfRowColumnCount()">
<h3>getIgnoreRangeOutOfRowColumnCount</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">getIgnoreRangeOutOfRowColumnCount</span>()</div>
<div class="block">Gets whether data outside the worksheet  <code>RowCount</code> and <code>ColumnCount</code> is ignored when exporting to an .sjs file.<p>The default value is  <code>false</code>. When this property is  <code>false</code>, data outside the specified row and column count is still exported to the .sjs file.</p>
<pre><code data-language="Java">
 SjsSaveOptions options = new SjsSaveOptions();
 options.setIgnoreRangeOutOfRowColumnCount(true);

 boolean ignore = options.getIgnoreRangeOutOfRowColumnCount();
 workbook.save("path/to/output.sjs", options);
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if data outside the worksheet row and column count is ignored during .sjs export; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setIgnoreRangeOutOfRowColumnCount(boolean)">
<h3>setIgnoreRangeOutOfRowColumnCount</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setIgnoreRangeOutOfRowColumnCount</span><wbr><span class="parameters">(boolean&nbsp;value)</span></div>
<div class="block">Sets whether data outside the worksheet  <code>RowCount</code> and <code>ColumnCount</code> is ignored when exporting to an .sjs file.<p>The default value is  <code>false</code>. When this property is  <code>false</code>, data outside the specified row and column count is still exported to the .sjs file.</p>
<pre><code data-language="Java">
 SjsSaveOptions options = new SjsSaveOptions();
 options.setIgnoreRangeOutOfRowColumnCount(true);

 workbook.save("path/to/output.sjs", options);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - <code>true</code> if data outside the worksheet row and column count is ignored during .sjs export; 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 option controls whether bound data is exported when the workbook is saved to  SpreadJS .sjs format. The default value is  <code>true</code>.</p>
<pre><code data-language="Java">
 SjsSaveOptions options = new SjsSaveOptions();
 options.setIncludeBindingSource(false);

 boolean includeBindingSource = options.getIncludeBindingSource();
 workbook.save("path/to/output.sjs", 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 option controls whether bound data is exported when the workbook is saved to  SpreadJS .sjs format. The default value is  <code>true</code>.</p>
<pre><code data-language="Java">
 SjsSaveOptions options = new SjsSaveOptions();
 options.setIncludeBindingSource(false);

 workbook.save("path/to/output.sjs", 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</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">getIncludeAutoMergedCells</span>()</div>
<div class="block">Gets whether to include automatically merged cells when saving a file. <p>The default value is  <code>false</code>.</p>
<pre><code data-language="Java">
 SjsSaveOptions options = new SjsSaveOptions();
 options.setIncludeAutoMergedCells(true);

 boolean includeAutoMergedCells = options.getIncludeAutoMergedCells();
 workbook.save("path/to/output.sjs", options);
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if automatically merged cells are included; 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</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 to include automatically merged cells when saving a file. <p>The default value is  <code>false</code>.</p>
<pre><code data-language="Java">
 SjsSaveOptions options = new SjsSaveOptions();
 options.setIncludeAutoMergedCells(true);

 workbook.save("path/to/output.sjs", options);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - <code>true</code> if automatically merged cells are included; otherwise, <code>false</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>