# IWorkbook

## Content

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="Workbook.html" title="class in com.grapecity.documents.excel">Workbook</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">IWorkbook</span></div>
<div class="block">Defines workbook-level APIs for working with spreadsheets. <p>This interface defines the workbook-level API for working with spreadsheets, including  managing worksheets, accessing the active sheet, configuring workbook settings, handling  workbook events, and performing operations such as calculation, opening, and saving.</p> <p>The  <a href="Workbook.html" title="class in com.grapecity.documents.excel"><code>Workbook</code></a> class is the known public implementation of this interface.</p>
<pre><code data-language="Java">
 IWorkbook workbook = new Workbook();
 workbook.getBuiltInDocumentProperties().setTitle("Quarterly Sales");
 workbook.getOptions().getFormulas().setEnableIterativeCalculation(true);
 workbook.getActiveSheet().getRange("A1").setValue("Revenue");
 IWorksheet worksheet = workbook.getWorksheets().get(0);
 </code></pre></div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div aria-orientation="horizontal" class="table-tabs" role="tablist"><button aria-controls="method-summary-table.tabpanel" aria-selected="true" class="active-table-tab" id="method-summary-table-tab0" onclick="show('method-summary-table', 'method-summary-table', 3)" onkeydown="switchTab(event)" role="tab" tabindex="0">All Methods</button><button aria-controls="method-summary-table.tabpanel" aria-selected="false" class="table-tab" id="method-summary-table-tab2" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" onkeydown="switchTab(event)" role="tab" tabindex="-1">Instance Methods</button><button aria-controls="method-summary-table.tabpanel" aria-selected="false" class="table-tab" id="method-summary-table-tab3" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" onkeydown="switchTab(event)" role="tab" tabindex="-1">Abstract Methods</button><button aria-controls="method-summary-table.tabpanel" aria-selected="false" class="table-tab" id="method-summary-table-tab6" onclick="show('method-summary-table', 'method-summary-table-tab6', 3)" onkeydown="switchTab(event)" role="tab" tabindex="-1">Deprecated Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div aria-labelledby="method-summary-table-tab0" class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#addDataSource(java.lang.String,java.lang.Object)">addDataSource</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;name,
 <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>&nbsp;dataSource)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Adds a named data source for template processing.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#calculate()">calculate</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Calculates formulas in the workbook as needed.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="IWorkbook.html" title="interface in com.grapecity.documents.excel">IWorkbook</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#clone()">clone</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Clones the current workbook and returns a new workbook instance.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#convertBarcodeToPicture()">convertBarcodeToPicture</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Converts calculated barcode formulas to pictures and places the pictures at their original positions.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#convertBarcodeToPicture(com.grapecity.documents.excel.drawing.ImageType)">convertBarcodeToPicture</a><wbr>(<a href="drawing/ImageType.html" title="enum class in com.grapecity.documents.excel.drawing">ImageType</a>&nbsp;imageType)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Converts calculated barcode formulas to pictures.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#dirty()">dirty</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Marks all formulas in the workbook as dirty so they are recalculated the next time calculation runs.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util">List</a>&lt;<a href="JsonError.html" title="class in com.grapecity.documents.excel">JsonError</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#fromJson(java.io.InputStream)">fromJson</a><wbr>(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/InputStream.html" title="class or interface in java.io">InputStream</a>&nbsp;stream)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Loads workbook content from a SpreadJS JSON (SSJSON) stream into this workbook.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util">List</a>&lt;<a href="JsonError.html" title="class in com.grapecity.documents.excel">JsonError</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#fromJson(java.io.InputStream,com.grapecity.documents.excel.DeserializationOptions)">fromJson</a><wbr>(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/InputStream.html" title="class or interface in java.io">InputStream</a>&nbsp;stream,
 <a href="DeserializationOptions.html" title="class in com.grapecity.documents.excel">DeserializationOptions</a>&nbsp;deserializationOptions)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Loads workbook content from a SpreadJS JSON (SSJSON) stream into this workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util">List</a>&lt;<a href="JsonError.html" title="class in com.grapecity.documents.excel">JsonError</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#fromJson(java.lang.String)">fromJson</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;json)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Loads workbook content from a SpreadJS JSON (SSJSON) string into this workbook.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util">List</a>&lt;<a href="JsonError.html" title="class in com.grapecity.documents.excel">JsonError</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#fromJson(java.lang.String,com.grapecity.documents.excel.DeserializationOptions)">fromJson</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;json,
 <a href="DeserializationOptions.html" title="class in com.grapecity.documents.excel">DeserializationOptions</a>&nbsp;deserializationOptions)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Loads workbook content from a SpreadJS JSON (SSJSON) string into this workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#fromSjsJson(java.io.InputStream)">fromSjsJson</a><wbr>(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/InputStream.html" title="class or interface in java.io">InputStream</a>&nbsp;stream)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Loads a workbook from a JSON stream that contains SpreadJS .sjs file content.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#fromSjsJson(java.io.InputStream,com.grapecity.documents.excel.SjsOpenOptions)">fromSjsJson</a><wbr>(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/InputStream.html" title="class or interface in java.io">InputStream</a>&nbsp;stream,
 <a href="SjsOpenOptions.html" title="class in com.grapecity.documents.excel">SjsOpenOptions</a>&nbsp;openOptions)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Generates a workbook from a JSON stream containing .sjs file content.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#fromSjsJson(java.lang.String)">fromSjsJson</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;json)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Generates a workbook from a JSON string containing .sjs file content.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#fromSjsJson(java.lang.String,com.grapecity.documents.excel.SjsOpenOptions)">fromSjsJson</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;json,
 <a href="SjsOpenOptions.html" title="class in com.grapecity.documents.excel">SjsOpenOptions</a>&nbsp;openOptions)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Generates a workbook from a JSON string containing SpreadJS .sjs file content, using the specified  <a href="SjsOpenOptions.html" title="class in com.grapecity.documents.excel"><code>SjsOpenOptions</code></a>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="IWorkbook.html" title="interface in com.grapecity.documents.excel">IWorkbook</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#generateReport()">generateReport</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Processes the template and returns a new report workbook instance.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="IWorkbook.html" title="interface in com.grapecity.documents.excel">IWorkbook</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#generateReport(com.grapecity.documents.excel.IWorksheet...)">generateReport</a><wbr>(<a href="IWorksheet.html" title="interface in com.grapecity.documents.excel">IWorksheet</a>...&nbsp;worksheets)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Processes the template and returns a new report workbook that includes only the specified worksheets.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="IWorksheet.html" title="interface in com.grapecity.documents.excel">IWorksheet</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getActiveSheet()">getActiveSheet</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the active worksheet in the workbook.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="Event.html" title="class in com.grapecity.documents.excel">Event</a>&lt;<a href="EventHandler.html" title="interface in com.grapecity.documents.excel">EventHandler</a>&lt;<a href="EventArgs.html" title="class in com.grapecity.documents.excel">EventArgs</a>&gt;&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getAfterSaveEvent()">getAfterSaveEvent</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Occurs after the workbook is saved.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3 method-summary-table-tab6"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3 method-summary-table-tab6"><code><a class="member-name-link" href="#getAllowDynamicArray()">getAllowDynamicArray</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3 method-summary-table-tab6">
<div class="block"><span class="deprecated-label">Deprecated.</span>
<div class="deprecation-comment">This method is obsolete.</div>
</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><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 odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getAuthor()">getAuthor</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the author of the workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getAutoParse()">getAutoParse</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets whether string values are automatically parsed when assigned to a range.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getAutoRoundValue()">getAutoRoundValue</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets whether numeric values are rounded to 15 significant digits when they are retrieved.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="Event.html" title="class in com.grapecity.documents.excel">Event</a>&lt;<a href="EventHandler.html" title="interface in com.grapecity.documents.excel">EventHandler</a>&lt;<a href="EventArgs.html" title="class in com.grapecity.documents.excel">EventArgs</a>&gt;&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getBeforeSaveEvent()">getBeforeSaveEvent</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Occurs before the workbook is saved.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="IWorkbookView.html" title="interface in com.grapecity.documents.excel">IWorkbookView</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getBookView()">getBookView</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the view settings of this workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="IBuiltInDocumentPropertyCollection.html" title="interface in com.grapecity.documents.excel">IBuiltInDocumentPropertyCollection</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getBuiltInDocumentProperties()">getBuiltInDocumentProperties</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the collection of built-in document properties in the workbook.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Locale.html" title="class or interface in java.util">Locale</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getCulture()">getCulture</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the culture information of the workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ICustomDocumentPropertyCollection.html" title="interface in com.grapecity.documents.excel">ICustomDocumentPropertyCollection</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getCustomDocumentProperties()">getCustomDocumentProperties</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the collection of custom document properties in the workbook.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ICustomViews.html" title="interface in com.grapecity.documents.excel">ICustomViews</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getCustomViews()">getCustomViews</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the custom views of the workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ICustomXmlPartCollection.html" title="interface in com.grapecity.documents.excel">ICustomXmlPartCollection</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getCustomXmlParts()">getCustomXmlParts</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the collection of Custom XML parts in the workbook.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><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 odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getDefaultTableStyle()">getDefaultTableStyle</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the table style name applied by default to newly created tables in the workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getDeferUpdateDirtyState()">getDeferUpdateDirtyState</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets whether updates to the dirty states of dependent formulas affected by cell value  changes are deferred.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getEnableCalculation()">getEnableCalculation</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets whether the calculation engine is enabled for the workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util">List</a>&lt;<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>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getExcelLinkSources()">getExcelLinkSources</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the names of the linked Excel documents in the workbook.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><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 odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getFullName()">getFullName</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the workbook name, including its full path.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="IGraphicsInfo.html" title="interface in com.grapecity.documents.excel">IGraphicsInfo</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getGraphicsInfo()">getGraphicsInfo</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the graphics information used by the workbook.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="IIconSets.html" title="interface in com.grapecity.documents.excel">IIconSets</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getIconSets()">getIconSets</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the collection of icon sets available in the workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><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-tab3"><code><a class="member-name-link" href="#getName()">getName</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the name of the workbook.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="INames.html" title="interface in com.grapecity.documents.excel">INames</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getNames()">getNames</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the collection of workbook-defined names.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="Event.html" title="class in com.grapecity.documents.excel">Event</a>&lt;<a href="EventHandler.html" title="interface in com.grapecity.documents.excel">EventHandler</a>&lt;<a href="SheetEventArgs.html" title="class in com.grapecity.documents.excel">SheetEventArgs</a>&gt;&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getNewSheetEvent()">getNewSheetEvent</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Occurs when a new sheet is created in the workbook.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="Event.html" title="class in com.grapecity.documents.excel">Event</a>&lt;<a href="EventHandler.html" title="interface in com.grapecity.documents.excel">EventHandler</a>&lt;<a href="EventArgs.html" title="class in com.grapecity.documents.excel">EventArgs</a>&gt;&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getOpenedEvent()">getOpenedEvent</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Occurs when the workbook is opened.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="IExcelOptions.html" title="interface in com.grapecity.documents.excel">IExcelOptions</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getOptions()">getOptions</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the workbook options.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><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 odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getPath()">getPath</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the path of the workbook file represented by this workbook object.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="IPivotCaches.html" title="interface in com.grapecity.documents.excel">IPivotCaches</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getPivotCaches()">getPivotCaches</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the  <a href="IPivotCaches.html" title="interface in com.grapecity.documents.excel"><code>IPivotCaches</code></a> collection that contains all <a href="IPivotTable.html" title="interface in com.grapecity.documents.excel"><code>IPivotTable</code></a> caches in the workbook.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getProtectStructure()">getProtectStructure</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">/ Gets a value indicating whether the workbook structure is protected.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getProtectWindows()">getProtectWindows</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets a value indicating whether the workbook windows are protected.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ReferenceStyle.html" title="enum class in com.grapecity.documents.excel">ReferenceStyle</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getReferenceStyle()">getReferenceStyle</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the reference style used by the workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getResetAdjacentRangeBorder()">getResetAdjacentRangeBorder</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets whether adjacent range borders are reset when a border is applied to a range.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="IWorksheets.html" title="interface in com.grapecity.documents.excel">IWorksheets</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getSelectedSheets()">getSelectedSheets</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the collection of selected worksheets in the workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="Event.html" title="class in com.grapecity.documents.excel">Event</a>&lt;<a href="EventHandler.html" title="interface in com.grapecity.documents.excel">EventHandler</a>&lt;<a href="SheetEventArgs.html" title="class in com.grapecity.documents.excel">SheetEventArgs</a>&gt;&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getSheetActivateEvent()">getSheetActivateEvent</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Occurs when a sheet is activated.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="Event.html" title="class in com.grapecity.documents.excel">Event</a>&lt;<a href="EventHandler.html" title="interface in com.grapecity.documents.excel">EventHandler</a>&lt;<a href="SheetEventArgs.html" title="class in com.grapecity.documents.excel">SheetEventArgs</a>&gt;&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getSheetBeforeDeleteEvent()">getSheetBeforeDeleteEvent</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Occurs before a sheet is deleted.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="Event.html" title="class in com.grapecity.documents.excel">Event</a>&lt;<a href="EventHandler.html" title="interface in com.grapecity.documents.excel">EventHandler</a>&lt;<a href="RangeEventArgs.html" title="class in com.grapecity.documents.excel">RangeEventArgs</a>&gt;&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getSheetChangeEvent()">getSheetChangeEvent</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Occurs when something changes in the cells of a sheet.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="Event.html" title="class in com.grapecity.documents.excel">Event</a>&lt;<a href="EventHandler.html" title="interface in com.grapecity.documents.excel">EventHandler</a>&lt;<a href="SheetEventArgs.html" title="class in com.grapecity.documents.excel">SheetEventArgs</a>&gt;&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getSheetDeactivateEvent()">getSheetDeactivateEvent</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Occurs when a sheet is deactivated.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="Event.html" title="class in com.grapecity.documents.excel">Event</a>&lt;<a href="EventHandler.html" title="interface in com.grapecity.documents.excel">EventHandler</a>&lt;<a href="RangeEventArgs.html" title="class in com.grapecity.documents.excel">RangeEventArgs</a>&gt;&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getSheetSelectionChange()">getSheetSelectionChange</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Occurs when the selection changes on a sheet.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ISheetTabs.html" title="interface in com.grapecity.documents.excel">ISheetTabs</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getSheetTabs()">getSheetTabs</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the collection of sheet tabs contained in the workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getShowPivotTableFieldList()">getShowPivotTableFieldList</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets a value indicating whether the PivotTable field list can be shown.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ISignatureSet.html" title="interface in com.grapecity.documents.excel">ISignatureSet</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getSignatures()">getSignatures</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the collection of digital signatures attached to the workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ISlicerCaches.html" title="interface in com.grapecity.documents.excel">ISlicerCaches</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getSlicerCaches()">getSlicerCaches</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the  <a href="ISlicerCaches.html" title="interface in com.grapecity.documents.excel"><code>ISlicerCaches</code></a> collection associated with the workbook.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="IStyleCollection.html" title="interface in com.grapecity.documents.excel">IStyleCollection</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getStyles()">getStyles</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the collection of styles in the current workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ITableStyleCollection.html" title="interface in com.grapecity.documents.excel">ITableStyleCollection</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getTableStyles()">getTableStyles</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the  <a href="ITableStyleCollection.html" title="interface in com.grapecity.documents.excel"><code>ITableStyleCollection</code></a> for the current workbook.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ITheme.html" title="interface in com.grapecity.documents.excel">ITheme</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getTheme()">getTheme</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the theme associated with the workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util">List</a>&lt;<a href="FontInfo.html" title="class in com.grapecity.documents.excel">FontInfo</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getUsedFonts()">getUsedFonts</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets all font information used in the workbook.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="IWorksheets.html" title="interface in com.grapecity.documents.excel">IWorksheets</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getWorksheets()">getWorksheets</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the  <a href="IWorksheets.html" title="interface in com.grapecity.documents.excel"><code>IWorksheets</code></a> collection that represents all worksheets in the workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="WriteProtection.html" title="class in com.grapecity.documents.excel">WriteProtection</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#getWriteProtection()">getWriteProtection</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the workbook write protection options.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#isEncryptedFile(java.io.InputStream)">isEncryptedFile</a><wbr>(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/InputStream.html" title="class or interface in java.io">InputStream</a>&nbsp;fileStream)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Determines whether the specified file stream is password protected.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#isEncryptedFile(java.lang.String)">isEncryptedFile</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;fileName)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Determines whether the specified file is password protected.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#open(java.io.InputStream)">open</a><wbr>(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/InputStream.html" title="class or interface in java.io">InputStream</a>&nbsp;fileStream)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Opens the specified Excel file stream.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#open(java.io.InputStream,com.grapecity.documents.excel.OpenFileFormat)">open</a><wbr>(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/InputStream.html" title="class or interface in java.io">InputStream</a>&nbsp;fileStream,
 <a href="OpenFileFormat.html" title="enum class in com.grapecity.documents.excel">OpenFileFormat</a>&nbsp;fileFormat)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Opens the specified format file stream.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#open(java.io.InputStream,com.grapecity.documents.excel.OpenOptionsBase)">open</a><wbr>(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/InputStream.html" title="class or interface in java.io">InputStream</a>&nbsp;fileStream,
 <a href="OpenOptionsBase.html" title="class in com.grapecity.documents.excel">OpenOptionsBase</a>&nbsp;options)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Opens the stream with specified options.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3 method-summary-table-tab6"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3 method-summary-table-tab6"><code><a class="member-name-link" href="#open(java.io.InputStream,java.lang.String)">open</a><wbr>(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/InputStream.html" title="class or interface in java.io">InputStream</a>&nbsp;fileStream,
 <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;password)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3 method-summary-table-tab6">
<div class="block"><span class="deprecated-label">Deprecated.</span>
<div class="deprecation-comment">Use <a href="#open(java.io.InputStream,com.grapecity.documents.excel.OpenOptionsBase)"><code>open(InputStream,OpenOptionsBase)</code></a> instead.</div>
</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#open(java.lang.String)">open</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;fileName)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Opens a workbook file.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util">List</a>&lt;<a href="JsonError.html" title="class in com.grapecity.documents.excel">JsonError</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#open(java.lang.String,com.grapecity.documents.excel.DeserializationOptions)">open</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;fileName,
 <a href="DeserializationOptions.html" title="class in com.grapecity.documents.excel">DeserializationOptions</a>&nbsp;deserializationOptions)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Opens the specified JSON file.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#open(java.lang.String,com.grapecity.documents.excel.OpenFileFormat)">open</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;fileName,
 <a href="OpenFileFormat.html" title="enum class in com.grapecity.documents.excel">OpenFileFormat</a>&nbsp;fileFormat)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Opens a file using the specified file format.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#open(java.lang.String,com.grapecity.documents.excel.OpenOptionsBase)">open</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;fileName,
 <a href="OpenOptionsBase.html" title="class in com.grapecity.documents.excel">OpenOptionsBase</a>&nbsp;options)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Opens a file with the specified open options.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3 method-summary-table-tab6"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3 method-summary-table-tab6"><code><a class="member-name-link" href="#open(java.lang.String,java.lang.String)">open</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;fileName,
 <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;password)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3 method-summary-table-tab6">
<div class="block"><span class="deprecated-label">Deprecated.</span>
<div class="deprecation-comment">Use <a href="#open(java.lang.String,com.grapecity.documents.excel.OpenOptionsBase)"><code>open(String,OpenOptionsBase)</code></a> instead.</div>
</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#processTemplate()">processTemplate</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Processes the workbook as a template by evaluating template fields and replacing them  with data from the workbook's data sources.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#processTemplate(com.grapecity.documents.excel.CancellationToken)">processTemplate</a><wbr>(<a href="CancellationToken.html" title="class in com.grapecity.documents.excel">CancellationToken</a>&nbsp;cancellationToken)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Processes the workbook as a template and observes cancellation requests through  the specified cancellation token.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#protect()">protect</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Protects the workbook structure without a password.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#protect(boolean)">protect</a><wbr>(boolean&nbsp;structure)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Protects a workbook so that it cannot be modified.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#protect(boolean,boolean)">protect</a><wbr>(boolean&nbsp;structure,
 boolean&nbsp;windows)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Protects the workbook from modification based on the specified structure and window settings.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#protect(java.lang.String)">protect</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;password)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Protects the workbook with a password so that it cannot be modified.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#protect(java.lang.String,boolean)">protect</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;password,
 boolean&nbsp;structure)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Protects the workbook so that it cannot be modified.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#protect(java.lang.String,boolean,boolean)">protect</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;password,
 boolean&nbsp;structure,
 boolean&nbsp;windows)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Protects a workbook so that it cannot be modified.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#save(java.io.OutputStream)">save</a><wbr>(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/OutputStream.html" title="class or interface in java.io">OutputStream</a>&nbsp;outputStream)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Saves the workbook to the specified stream.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#save(java.io.OutputStream,com.grapecity.documents.excel.SaveFileFormat)">save</a><wbr>(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/OutputStream.html" title="class or interface in java.io">OutputStream</a>&nbsp;fileStream,
 <a href="SaveFileFormat.html" title="enum class in com.grapecity.documents.excel">SaveFileFormat</a>&nbsp;fileFormat)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Saves the workbook to the specified stream in the specified file format.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#save(java.io.OutputStream,com.grapecity.documents.excel.SaveOptionsBase)">save</a><wbr>(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/OutputStream.html" title="class or interface in java.io">OutputStream</a>&nbsp;fileStream,
 <a href="SaveOptionsBase.html" title="class in com.grapecity.documents.excel">SaveOptionsBase</a>&nbsp;options)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Saves the workbook to a stream with the specified save options.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3 method-summary-table-tab6"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3 method-summary-table-tab6"><code><a class="member-name-link" href="#save(java.io.OutputStream,java.lang.String)">save</a><wbr>(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/OutputStream.html" title="class or interface in java.io">OutputStream</a>&nbsp;outputStream,
 <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;password)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3 method-summary-table-tab6">
<div class="block"><span class="deprecated-label">Deprecated.</span>
<div class="deprecation-comment">Use <a href="#save(java.io.OutputStream,com.grapecity.documents.excel.SaveOptionsBase)"><code>save(OutputStream,SaveOptionsBase)</code></a> instead.</div>
</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#save(java.lang.String)">save</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;fileName)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Saves the workbook to disk.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#save(java.lang.String,com.grapecity.documents.excel.SaveFileFormat)">save</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;fileName,
 <a href="SaveFileFormat.html" title="enum class in com.grapecity.documents.excel">SaveFileFormat</a>&nbsp;fileFormat)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Saves the workbook to the specified file in the specified format.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#save(java.lang.String,com.grapecity.documents.excel.SaveOptionsBase)">save</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;fileName,
 <a href="SaveOptionsBase.html" title="class in com.grapecity.documents.excel">SaveOptionsBase</a>&nbsp;options)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Saves the workbook to a file with the specified save options.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#save(java.lang.String,java.lang.String)">save</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;fileName,
 <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;password)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Saves the workbook to the specified Excel file with a password.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3 method-summary-table-tab6"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3 method-summary-table-tab6"><code><a class="member-name-link" href="#setAllowDynamicArray(boolean)">setAllowDynamicArray</a><wbr>(boolean&nbsp;value)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3 method-summary-table-tab6">
<div class="block"><span class="deprecated-label">Deprecated.</span>
<div class="deprecation-comment">Use <a href="IRange.html#setFormula2(java.lang.String)"><code>IRange.setFormula2(String)</code></a> to set dynamic array formulas.</div>
</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#setAuthor(java.lang.String)">setAuthor</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-tab3">
<div class="block">Sets the author of the workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#setAutoParse(boolean)">setAutoParse</a><wbr>(boolean&nbsp;value)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Sets whether string values are automatically parsed when assigned to a range.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#setAutoRoundValue(boolean)">setAutoRoundValue</a><wbr>(boolean&nbsp;value)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Sets whether numeric values are rounded to 15 significant digits when they are retrieved.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#setCulture(java.util.Locale)">setCulture</a><wbr>(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Locale.html" title="class or interface in java.util">Locale</a>&nbsp;value)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Sets the culture for the workbook.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#setDefaultTableStyle(java.lang.String)">setDefaultTableStyle</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-tab3">
<div class="block">Sets the table style name applied by default to newly created tables in the workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#setDeferUpdateDirtyState(boolean)">setDeferUpdateDirtyState</a><wbr>(boolean&nbsp;value)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Sets whether updates to the dirty states of dependent formulas affected by cell value  changes are deferred.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#setEnableCalculation(boolean)">setEnableCalculation</a><wbr>(boolean&nbsp;value)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Sets whether the calculation engine is enabled for the workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#setGraphicsInfo(com.grapecity.documents.excel.IGraphicsInfo)">setGraphicsInfo</a><wbr>(<a href="IGraphicsInfo.html" title="interface in com.grapecity.documents.excel">IGraphicsInfo</a>&nbsp;value)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Sets the graphics information used by the workbook.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#setName(java.lang.String)">setName</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;name)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Sets the name of the workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#setPath(java.lang.String)">setPath</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;path)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Sets the path of the workbook file represented by this workbook object.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#setReferenceStyle(com.grapecity.documents.excel.ReferenceStyle)">setReferenceStyle</a><wbr>(<a href="ReferenceStyle.html" title="enum class in com.grapecity.documents.excel">ReferenceStyle</a>&nbsp;value)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Sets the reference style used for cell references in the workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#setResetAdjacentRangeBorder(boolean)">setResetAdjacentRangeBorder</a><wbr>(boolean&nbsp;value)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Sets whether adjacent range borders are reset when a border is applied to a range.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#setShowPivotTableFieldList(boolean)">setShowPivotTableFieldList</a><wbr>(boolean&nbsp;value)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Sets a value indicating whether the PivotTable field list can be shown.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#setTheme(com.grapecity.documents.excel.ITheme)">setTheme</a><wbr>(<a href="ITheme.html" title="interface in com.grapecity.documents.excel">ITheme</a>&nbsp;value)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Sets the theme applied to the current workbook.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><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 odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#toJson()">toJson</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Generates a JSON string from the workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><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-tab3"><code><a class="member-name-link" href="#toJson(com.grapecity.documents.excel.SerializationOptions)">toJson</a><wbr>(<a href="SerializationOptions.html" title="class in com.grapecity.documents.excel">SerializationOptions</a>&nbsp;serializationOptions)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Generates a JSON string from the workbook using the specified serialization options.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#toJson(java.io.OutputStream)">toJson</a><wbr>(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/OutputStream.html" title="class or interface in java.io">OutputStream</a>&nbsp;stream)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Generates a JSON stream from the workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#toJson(java.io.OutputStream,com.grapecity.documents.excel.SerializationOptions)">toJson</a><wbr>(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/OutputStream.html" title="class or interface in java.io">OutputStream</a>&nbsp;stream,
 <a href="SerializationOptions.html" title="class in com.grapecity.documents.excel">SerializationOptions</a>&nbsp;serializationOptions)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Serializes the workbook to JSON and writes the content to the specified output stream.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><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 odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#toSjsJson()">toSjsJson</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Generates a single JSON payload that represents the workbook in SpreadJS .sjs format.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><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-tab3"><code><a class="member-name-link" href="#toSjsJson(com.grapecity.documents.excel.SjsSaveOptions)">toSjsJson</a><wbr>(<a href="SjsSaveOptions.html" title="class in com.grapecity.documents.excel">SjsSaveOptions</a>&nbsp;options)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Generates a single JSON payload that represents the workbook in SpreadJS .sjs format, using the specified save options.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#toSjsJson(java.io.OutputStream)">toSjsJson</a><wbr>(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/OutputStream.html" title="class or interface in java.io">OutputStream</a>&nbsp;stream)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Writes a JSON string that combines all JSON parts of the SpreadJS .sjs content for this workbook to the specified stream.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#toSjsJson(java.io.OutputStream,com.grapecity.documents.excel.SjsSaveOptions)">toSjsJson</a><wbr>(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/OutputStream.html" title="class or interface in java.io">OutputStream</a>&nbsp;stream,
 <a href="SjsSaveOptions.html" title="class in com.grapecity.documents.excel">SjsSaveOptions</a>&nbsp;options)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Integrates all JSON files in the SpreadJS .sjs format into a single string and writes it to the specified stream.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#unprotect()">unprotect</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Removes protection from the workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#unprotect(java.lang.String)">unprotect</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;password)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Removes protection from the workbook.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#updateExcelLink(java.lang.String)">updateExcelLink</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;name)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Updates the Excel link with the specified name.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#updateExcelLink(java.lang.String,com.grapecity.documents.excel.IWorkbook)">updateExcelLink</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;name,
 <a href="IWorkbook.html" title="interface in com.grapecity.documents.excel">IWorkbook</a>&nbsp;sourceWorkbook)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Updates a specified Excel link by using the content from another workbook.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#updateExcelLinks()">updateExcelLinks</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Updates all Excel links in the workbook.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a class="member-name-link" href="#waitForCalculationToFinish()">waitForCalculationToFinish</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Waits for all calculations in the workbook to finish.</div>
</div>
</div>
</div>
</div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="getAfterSaveEvent()">
<h3>getAfterSaveEvent</h3>
<div class="member-signature"><span class="return-type"><a href="Event.html" title="class in com.grapecity.documents.excel">Event</a>&lt;<a href="EventHandler.html" title="interface in com.grapecity.documents.excel">EventHandler</a>&lt;<a href="EventArgs.html" title="class in com.grapecity.documents.excel">EventArgs</a>&gt;&gt;</span>&nbsp;<span class="element-name">getAfterSaveEvent</span>()</div>
<div class="block">Occurs after the workbook is saved.
 <pre><code data-language="Java">
 final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
 final boolean[] afterSaveHandled = {false};
 Event&lt;EventHandler&lt;EventArgs&gt;&gt; afterSaveEvent = workbook.getAfterSaveEvent();
 afterSaveEvent.addListener(new EventHandler&lt;EventArgs&gt;() {
     public void invoke(Object sender, EventArgs e) {
         afterSaveHandled[0] = outputStream.size() &gt; 0;
     }
 });
 workbook.getActiveSheet().getRange("A1").setValue("Ready");
 workbook.save(outputStream);
 boolean saved = afterSaveHandled[0];
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The <a href="Event.html" title="class in com.grapecity.documents.excel"><code>Event</code></a> that occurs after the workbook is saved.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getBeforeSaveEvent()">
<h3>getBeforeSaveEvent</h3>
<div class="member-signature"><span class="return-type"><a href="Event.html" title="class in com.grapecity.documents.excel">Event</a>&lt;<a href="EventHandler.html" title="interface in com.grapecity.documents.excel">EventHandler</a>&lt;<a href="EventArgs.html" title="class in com.grapecity.documents.excel">EventArgs</a>&gt;&gt;</span>&nbsp;<span class="element-name">getBeforeSaveEvent</span>()</div>
<div class="block">Occurs before the workbook is saved.
 <pre><code data-language="Java">
 final boolean[] beforeSaveHandled = {false};
 Event&lt;EventHandler&lt;EventArgs&gt;&gt; beforeSaveEvent = workbook.getBeforeSaveEvent();
 beforeSaveEvent.addListener(new EventHandler&lt;EventArgs&gt;() {
     public void invoke(Object sender, EventArgs e) {
         beforeSaveHandled[0] = "Ready".equals(workbook.getActiveSheet().getRange("A1").getValue());
     }
 });
 workbook.getActiveSheet().getRange("A1").setValue("Ready");
 workbook.save(new ByteArrayOutputStream());
 boolean saving = beforeSaveHandled[0];
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The <a href="Event.html" title="class in com.grapecity.documents.excel"><code>Event</code></a> that occurs before the workbook is saved.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getNewSheetEvent()">
<h3>getNewSheetEvent</h3>
<div class="member-signature"><span class="return-type"><a href="Event.html" title="class in com.grapecity.documents.excel">Event</a>&lt;<a href="EventHandler.html" title="interface in com.grapecity.documents.excel">EventHandler</a>&lt;<a href="SheetEventArgs.html" title="class in com.grapecity.documents.excel">SheetEventArgs</a>&gt;&gt;</span>&nbsp;<span class="element-name">getNewSheetEvent</span>()</div>
<div class="block">Occurs when a new sheet is created in the workbook.
 <pre><code data-language="Java">
 final IWorksheet[] sheetFromEvent = {null};
 Event&lt;EventHandler&lt;SheetEventArgs&gt;&gt; newSheetEvent = workbook.getNewSheetEvent();
 newSheetEvent.addListener(new EventHandler&lt;SheetEventArgs&gt;() {
     public void invoke(Object sender, SheetEventArgs e) {
         sheetFromEvent[0] = e.getSheet();
     }
 });
 workbook.getWorksheets().add();
 IWorksheet newSheet = sheetFromEvent[0];
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The <a href="Event.html" title="class in com.grapecity.documents.excel"><code>Event</code></a> that occurs when a new sheet is created in the workbook.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getOpenedEvent()">
<h3>getOpenedEvent</h3>
<div class="member-signature"><span class="return-type"><a href="Event.html" title="class in com.grapecity.documents.excel">Event</a>&lt;<a href="EventHandler.html" title="interface in com.grapecity.documents.excel">EventHandler</a>&lt;<a href="EventArgs.html" title="class in com.grapecity.documents.excel">EventArgs</a>&gt;&gt;</span>&nbsp;<span class="element-name">getOpenedEvent</span>()</div>
<div class="block">Occurs when the workbook is opened.
 <pre><code data-language="Java">
 ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
 workbook.getActiveSheet().getRange("A1").setValue("Opened");
 workbook.save(outputStream);
 IWorkbook openedWorkbook = new Workbook();
 final boolean[] openedHandled = {false};
 Event&lt;EventHandler&lt;EventArgs&gt;&gt; openedEvent = openedWorkbook.getOpenedEvent();
 openedEvent.addListener(new EventHandler&lt;EventArgs&gt;() {
     public void invoke(Object sender, EventArgs e) {
         openedHandled[0] = true;
     }
 });
 openedWorkbook.open(new ByteArrayInputStream(outputStream.toByteArray()));
 boolean opened = openedHandled[0];
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The <a href="Event.html" title="class in com.grapecity.documents.excel"><code>Event</code></a> that occurs when the workbook is opened.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getSheetActivateEvent()">
<h3>getSheetActivateEvent</h3>
<div class="member-signature"><span class="return-type"><a href="Event.html" title="class in com.grapecity.documents.excel">Event</a>&lt;<a href="EventHandler.html" title="interface in com.grapecity.documents.excel">EventHandler</a>&lt;<a href="SheetEventArgs.html" title="class in com.grapecity.documents.excel">SheetEventArgs</a>&gt;&gt;</span>&nbsp;<span class="element-name">getSheetActivateEvent</span>()</div>
<div class="block">Occurs when a sheet is activated.
 <pre><code data-language="Java">
 IWorksheet detailSheet = workbook.getWorksheets().add();
 final IWorksheet[] sheetFromEvent = {null};
 Event&lt;EventHandler&lt;SheetEventArgs&gt;&gt; sheetActivateEvent = workbook.getSheetActivateEvent();
 sheetActivateEvent.addListener(new EventHandler&lt;SheetEventArgs&gt;() {
     public void invoke(Object sender, SheetEventArgs e) {
         sheetFromEvent[0] = e.getSheet();
     }
 });
 detailSheet.activate();
 IWorksheet activeSheet = sheetFromEvent[0];
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The <a href="Event.html" title="class in com.grapecity.documents.excel"><code>Event</code></a> that occurs when a sheet is activated.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getSheetBeforeDeleteEvent()">
<h3>getSheetBeforeDeleteEvent</h3>
<div class="member-signature"><span class="return-type"><a href="Event.html" title="class in com.grapecity.documents.excel">Event</a>&lt;<a href="EventHandler.html" title="interface in com.grapecity.documents.excel">EventHandler</a>&lt;<a href="SheetEventArgs.html" title="class in com.grapecity.documents.excel">SheetEventArgs</a>&gt;&gt;</span>&nbsp;<span class="element-name">getSheetBeforeDeleteEvent</span>()</div>
<div class="block">Occurs before a sheet is deleted.
 <pre><code data-language="Java">
 IWorksheet sheetToDelete = workbook.getWorksheets().add();
 final IWorksheet[] sheetFromEvent = {null};
 Event&lt;EventHandler&lt;SheetEventArgs&gt;&gt; sheetBeforeDeleteEvent = workbook.getSheetBeforeDeleteEvent();
 sheetBeforeDeleteEvent.addListener(new EventHandler&lt;SheetEventArgs&gt;() {
     public void invoke(Object sender, SheetEventArgs e) {
         sheetFromEvent[0] = e.getSheet();
     }
 });
 sheetToDelete.delete();
 IWorksheet deletedSheet = sheetFromEvent[0];
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The <a href="Event.html" title="class in com.grapecity.documents.excel"><code>Event</code></a> that occurs before a sheet is deleted.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getSheetChangeEvent()">
<h3>getSheetChangeEvent</h3>
<div class="member-signature"><span class="return-type"><a href="Event.html" title="class in com.grapecity.documents.excel">Event</a>&lt;<a href="EventHandler.html" title="interface in com.grapecity.documents.excel">EventHandler</a>&lt;<a href="RangeEventArgs.html" title="class in com.grapecity.documents.excel">RangeEventArgs</a>&gt;&gt;</span>&nbsp;<span class="element-name">getSheetChangeEvent</span>()</div>
<div class="block">Occurs when something changes in the cells of a sheet.
 <pre><code data-language="Java">
 final IRange[] rangeFromEvent = {null};
 Event&lt;EventHandler&lt;RangeEventArgs&gt;&gt; sheetChangeEvent = workbook.getSheetChangeEvent();
 sheetChangeEvent.addListener(new EventHandler&lt;RangeEventArgs&gt;() {
     public void invoke(Object sender, RangeEventArgs e) {
         rangeFromEvent[0] = e.getRange();
     }
 });
 workbook.getActiveSheet().getRange("A1").setValue("Updated");
 IRange changedRange = rangeFromEvent[0];
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The <a href="Event.html" title="class in com.grapecity.documents.excel"><code>Event</code></a> that occurs when something changes in the cells of a sheet.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getSheetDeactivateEvent()">
<h3>getSheetDeactivateEvent</h3>
<div class="member-signature"><span class="return-type"><a href="Event.html" title="class in com.grapecity.documents.excel">Event</a>&lt;<a href="EventHandler.html" title="interface in com.grapecity.documents.excel">EventHandler</a>&lt;<a href="SheetEventArgs.html" title="class in com.grapecity.documents.excel">SheetEventArgs</a>&gt;&gt;</span>&nbsp;<span class="element-name">getSheetDeactivateEvent</span>()</div>
<div class="block">Occurs when a sheet is deactivated.
 <pre><code data-language="Java">
 IWorksheet summarySheet = workbook.getWorksheets().add();
 final IWorksheet[] sheetFromEvent = {null};
 Event&lt;EventHandler&lt;SheetEventArgs&gt;&gt; sheetDeactivateEvent = workbook.getSheetDeactivateEvent();
 sheetDeactivateEvent.addListener(new EventHandler&lt;SheetEventArgs&gt;() {
     public void invoke(Object sender, SheetEventArgs e) {
         sheetFromEvent[0] = e.getSheet();
     }
 });
 summarySheet.activate();
 IWorksheet deactivatedSheet = sheetFromEvent[0];
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The <a href="Event.html" title="class in com.grapecity.documents.excel"><code>Event</code></a> that occurs when a sheet is deactivated.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getSheetSelectionChange()">
<h3>getSheetSelectionChange</h3>
<div class="member-signature"><span class="return-type"><a href="Event.html" title="class in com.grapecity.documents.excel">Event</a>&lt;<a href="EventHandler.html" title="interface in com.grapecity.documents.excel">EventHandler</a>&lt;<a href="RangeEventArgs.html" title="class in com.grapecity.documents.excel">RangeEventArgs</a>&gt;&gt;</span>&nbsp;<span class="element-name">getSheetSelectionChange</span>()</div>
<div class="block">Occurs when the selection changes on a sheet.
 <pre><code data-language="Java">
 final IRange[] rangeFromEvent = {null};
 Event&lt;EventHandler&lt;RangeEventArgs&gt;&gt; sheetSelectionChangeEvent = workbook.getSheetSelectionChange();
 sheetSelectionChangeEvent.addListener(new EventHandler&lt;RangeEventArgs&gt;() {
     public void invoke(Object sender, RangeEventArgs e) {
         rangeFromEvent[0] = e.getRange();
     }
 });
 workbook.getActiveSheet().getRange("B2").select();
 IRange selectedRange = rangeFromEvent[0];
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The <a href="Event.html" title="class in com.grapecity.documents.excel"><code>Event</code></a> that occurs when the selection changes on a sheet.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getAllowDynamicArray()">
<h3>getAllowDynamicArray</h3>
<div class="member-signature"><span class="annotations"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Deprecated.html" title="class or interface in java.lang">@Deprecated</a>
</span><span class="return-type">boolean</span>&nbsp;<span class="element-name">getAllowDynamicArray</span>()</div>
<div class="deprecation-block"><span class="deprecated-label">Deprecated.</span>
<div class="deprecation-comment">This method is obsolete. Use <a href="IRange.html#setFormula2(java.lang.String)"><code>IRange.setFormula2(String)</code></a> to set a dynamic array formula.</div>
</div>
<div class="block">Gets whether dynamic array formulas are allowed for compatibility with  <a href="IRange.html#setFormula(java.lang.String)"><code>IRange.setFormula(String)</code></a>. <p>This method is obsolete. Dynamic array formulas should be defined by using  <a href="IRange.html#setFormula2(java.lang.String)"><code>IRange.setFormula2(String)</code></a> instead. This property is retained for compatibility with earlier versions that enabled dynamic array behavior together with  <a href="IRange.html#setFormula(java.lang.String)"><code>IRange.setFormula(String)</code></a>.</p></div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if dynamic array formulas are allowed for compatibility with <a href="IRange.html#setFormula(java.lang.String)"><code>IRange.setFormula(String)</code></a>; otherwise,  <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setAllowDynamicArray(boolean)">
<h3>setAllowDynamicArray</h3>
<div class="member-signature"><span class="annotations"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Deprecated.html" title="class or interface in java.lang">@Deprecated</a>
</span><span class="return-type">void</span>&nbsp;<span class="element-name">setAllowDynamicArray</span><wbr><span class="parameters">(boolean&nbsp;value)</span></div>
<div class="deprecation-block"><span class="deprecated-label">Deprecated.</span>
<div class="deprecation-comment">Use <a href="IRange.html#setFormula2(java.lang.String)"><code>IRange.setFormula2(String)</code></a> to set dynamic array formulas.</div>
</div>
<div class="block">Sets whether dynamic array formulas are allowed in the workbook. <p>This method is deprecated. Use  <a href="IRange.html#setFormula2(java.lang.String)"><code>IRange.setFormula2(String)</code></a> to assign dynamic array formulas directly instead of relying on this workbook-level setting.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - <code>true</code> to allow dynamic array formulas in the workbook; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getDeferUpdateDirtyState()">
<h3>getDeferUpdateDirtyState</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">getDeferUpdateDirtyState</span>()</div>
<div class="block">Gets whether updates to the dirty states of dependent formulas affected by cell value  changes are deferred. <p>When a cell value changes, dirty-state propagation normally runs immediately along the  formula dependency chain. In scenarios with complex dependencies and frequent bulk value  updates, this repeated propagation can introduce additional performance overhead.</p> <p>When this property is  <code>true</code>, value changes are queued and the dirty states of  dependent formulas are not updated immediately. When this property is set back to  <code>false</code>, the workbook processes the queued changes and updates the affected dirty  states in a batch. Therefore,  <code>true</code> and <code>false</code> must be used in pairs: each time this property is set to  <code>true</code>, it must be set back to  <code>false</code> after bulk updates are complete. Otherwise, objects that rely on cached or delayed refresh results,  such as charts, might still return stale values before the queued changes are processed.</p> <p>This property is intended for bulk cell value updates and can improve performance by  reducing repeated dependency analysis and dirty-state propagation. It is not recommended  when  <code>getValue</code> and <code>setValue</code> operations are interleaved.</p>
<pre><code data-language="Java">
 worksheet.getRange("B1").setFormula("=SUM(A:A)");
 workbook.setDeferUpdateDirtyState(true);
 boolean deferred;
 try {
     deferred = workbook.getDeferUpdateDirtyState();
     for (int i = 0; i &lt; 1000; i++) {
         worksheet.getRange(i, 0).setValue(i);
     }
 } finally {
     workbook.setDeferUpdateDirtyState(false);
 }
 Object value = worksheet.getRange("B1").getValue();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if updates to the dirty states of dependent formulas affected by cell value changes are deferred; otherwise,  <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setDeferUpdateDirtyState(boolean)">
<h3>setDeferUpdateDirtyState</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setDeferUpdateDirtyState</span><wbr><span class="parameters">(boolean&nbsp;value)</span></div>
<div class="block">Sets whether updates to the dirty states of dependent formulas affected by cell value  changes are deferred. <p>When a cell value changes, dirty-state propagation normally runs immediately along the  formula dependency chain. In scenarios with complex dependencies and frequent bulk value  updates, this repeated propagation can introduce additional performance overhead.</p> <p>When this property is  <code>true</code>, value changes are queued and the dirty states of  dependent formulas are not updated immediately. When this property is set back to  <code>false</code>, the workbook processes the queued changes and updates the affected dirty  states in a batch. Therefore,  <code>true</code> and <code>false</code> must be used in pairs: each time this property is set to  <code>true</code>, it must be set back to  <code>false</code> after bulk updates are complete. Otherwise, objects that rely on cached or delayed refresh results,  such as charts, might still return stale values before the queued changes are processed.</p> <p>This property is intended for bulk cell value updates and can improve performance by  reducing repeated dependency analysis and dirty-state propagation. It is not recommended  when  <code>getValue</code> and <code>setValue</code> operations are interleaved.</p>
<pre><code data-language="Java">
 worksheet.getRange("B1").setFormula("=SUM(A:A)");
 workbook.setDeferUpdateDirtyState(true);
 try {
     for (int i = 0; i &lt; 1000; i++) {
         worksheet.getRange(i, 0).setValue(i);
     }
 } finally {
     workbook.setDeferUpdateDirtyState(false);
 }
 Object value = worksheet.getRange("B1").getValue();
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - <code>true</code> if updates to the dirty states of dependent formulas affected by cell value changes are deferred; otherwise,  <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getName()">
<h3>getName</h3>
<div class="member-signature"><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">getName</span>()</div>
<div class="block">Gets the name of the workbook. <p>This method returns the workbook name without the file path. To get the  workbook name together with its path, use  <a href="#getFullName()"><code>getFullName()</code></a>.</p>
<pre><code data-language="Java">
 String filePath = java.nio.file.Paths.get(System.getProperty("user.dir")).toString();
 workbook.setPath(filePath);
 workbook.setName("QuarterlyReport.xlsx");
 String name = workbook.getName();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The name of the workbook.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setName(java.lang.String)">
<h3>setName</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setName</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;name)</span></div>
<div class="block">Sets the name of the workbook. <p>This method sets the workbook name without the file path. To get the  workbook name together with its path, use  <a href="#getFullName()"><code>getFullName()</code></a>.</p>
<pre><code data-language="Java">
 String filePath = java.nio.file.Paths.get(System.getProperty("user.dir")).toString();
 workbook.setPath(filePath);
 workbook.setName("QuarterlyReport.xlsx");
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - The name of the workbook.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getFullName()">
<h3>getFullName</h3>
<div class="member-signature"><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">getFullName</span>()</div>
<div class="block">Gets the workbook name, including its full path. <p>This method returns the full workbook name composed from the workbook name and  path information associated with this workbook.</p>
<pre><code data-language="Java">
 String filePath = java.nio.file.Paths.get(System.getProperty("user.dir")).toString();
 workbook.setPath(filePath);
 workbook.setName("QuarterlyReport.xlsx");
 String fullName = workbook.getFullName();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The workbook name including its full path.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getPath()">
<h3>getPath</h3>
<div class="member-signature"><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">getPath</span>()</div>
<div class="block">Gets the path of the workbook file represented by this workbook object. <p>Use this method to retrieve the path information associated with the current workbook.  To get the workbook name together with its path, use  <a href="#getFullName()"><code>getFullName()</code></a>.</p>
<pre><code data-language="Java">
 String directoryPath = java.nio.file.Paths.get(System.getProperty("user.dir"), "Documents").toString();
 workbook.setPath(directoryPath);
 workbook.setName("Report.xlsx");
 String path = workbook.getPath();
 String fullName = workbook.getFullName();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The path of the workbook file represented by this workbook object.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setPath(java.lang.String)">
<h3>setPath</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setPath</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;path)</span></div>
<div class="block">Sets the path of the workbook file represented by this workbook object. <p>Use this method to set the path information associated with the current workbook.  To set the workbook file name, use  <a href="#setName(java.lang.String)"><code>setName(String)</code></a>. To get the workbook name  together with its path, use  <a href="#getFullName()"><code>getFullName()</code></a>.</p>
<pre><code data-language="Java">
 String directoryPath = java.nio.file.Paths.get(System.getProperty("user.dir"), "Documents").toString();
 workbook.setPath(directoryPath);
 workbook.setName("Report.xlsx");
 String fullName = workbook.getFullName();
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>path</code> - The path of the workbook file represented by this workbook object.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getSelectedSheets()">
<h3>getSelectedSheets</h3>
<div class="member-signature"><span class="return-type"><a href="IWorksheets.html" title="interface in com.grapecity.documents.excel">IWorksheets</a></span>&nbsp;<span class="element-name">getSelectedSheets</span>()</div>
<div class="block">Gets the collection of selected worksheets in the workbook. <p>The returned  <a href="IWorksheets.html" title="interface in com.grapecity.documents.excel"><code>IWorksheets</code></a> object represents all worksheets that are currently selected.</p>
<pre><code data-language="Java">
 IWorksheet sheet2 = workbook.getWorksheets().add();
 workbook.getWorksheets().get(new String[] {worksheet.getName(), sheet2.getName()}).select();
 IWorksheets selectedSheets = workbook.getSelectedSheets();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>An <a href="IWorksheets.html" title="interface in com.grapecity.documents.excel"><code>IWorksheets</code></a> collection that represents all selected worksheets in the workbook.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getOptions()">
<h3>getOptions</h3>
<div class="member-signature"><span class="return-type"><a href="IExcelOptions.html" title="interface in com.grapecity.documents.excel">IExcelOptions</a></span>&nbsp;<span class="element-name">getOptions</span>()</div>
<div class="block">Gets the workbook options. <p>Returns the  <a href="IExcelOptions.html" title="interface in com.grapecity.documents.excel"><code>IExcelOptions</code></a> object that contains settings used to control workbook behavior, such as formula-related options and data-related options.</p>
<pre><code data-language="Java">
 IExcelOptions options = workbook.getOptions();
 workbook.getActiveSheet().getRange("A1").setFormula("SUM(1, 2)");
 options.getFormulas().setCalculationMode(CalculationMode.Manual);
 workbook.save("path/to/manual-mode.xlsx");
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The <a href="IExcelOptions.html" title="interface in com.grapecity.documents.excel"><code>IExcelOptions</code></a> object that contains workbook option settings.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getResetAdjacentRangeBorder()">
<h3>getResetAdjacentRangeBorder</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">getResetAdjacentRangeBorder</span>()</div>
<div class="block">Gets whether adjacent range borders are reset when a border is applied to a range. <p>The default value is  <code>true</code>.</p>
<pre><code data-language="Java">
 worksheet.getRange("D2:D3").getBorders().get(BordersIndex.EdgeLeft).setLineStyle(BorderLineStyle.Thick);
 workbook.setResetAdjacentRangeBorder(true);
 boolean resetAdjacentBorder = workbook.getResetAdjacentRangeBorder();
 worksheet.getRange("B2:C3").getBorders().get(BordersIndex.EdgeRight).setLineStyle(BorderLineStyle.Thin);
 BorderLineStyle adjacentLeftBorder = worksheet.getRange("D2:D3").getBorders().get(BordersIndex.EdgeLeft).getLineStyle();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if borders of adjacent ranges are reset when setting a border for a range; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setResetAdjacentRangeBorder(boolean)">
<h3>setResetAdjacentRangeBorder</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setResetAdjacentRangeBorder</span><wbr><span class="parameters">(boolean&nbsp;value)</span></div>
<div class="block">Sets whether adjacent range borders are reset when a border is applied to a range. <p>The default value is  <code>true</code>.</p>
<pre><code data-language="Java">
 worksheet.getRange("D2:D3").getBorders().get(BordersIndex.EdgeLeft).setLineStyle(BorderLineStyle.Thick);
 workbook.setResetAdjacentRangeBorder(true);
 worksheet.getRange("B2:C3").getBorders().get(BordersIndex.EdgeRight).setLineStyle(BorderLineStyle.Thin);
 BorderLineStyle adjacentLeftBorder = worksheet.getRange("D2:D3").getBorders().get(BordersIndex.EdgeLeft).getLineStyle();
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - <code>true</code> if borders of adjacent ranges are reset when setting a border for a range; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getAutoParse()">
<h3>getAutoParse</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">getAutoParse</span>()</div>
<div class="block">Gets whether string values are automatically parsed when assigned to a range. <p>When this property is  <code>true</code>, string values assigned with  <a href="IRange.html#setValue(java.lang.Object)"><code>IRange.setValue(Object)</code></a> may be interpreted as numbers, date/time values, boolean values, error values, or empty cell values instead of being kept as plain text.</p>
<pre><code data-language="Java">
 workbook.setAutoParse(true);
 worksheet.getRange("A1").setValue("123");
 Object value = worksheet.getRange("A1").getValue();
 boolean autoParse = workbook.getAutoParse();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if string values are automatically parsed when assigned to a range; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setAutoParse(boolean)">
<h3>setAutoParse</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setAutoParse</span><wbr><span class="parameters">(boolean&nbsp;value)</span></div>
<div class="block">Sets whether string values are automatically parsed when assigned to a range. <p>When this property is  <code>true</code>, string values assigned with  <a href="IRange.html#setValue(java.lang.Object)"><code>IRange.setValue(Object)</code></a> may be interpreted as numbers, date/time values, boolean values, error values, or empty cell values instead of being kept as plain text.</p>
<pre><code data-language="Java">
 workbook.setAutoParse(true);
 worksheet.getRange("A1").setValue("123");
 Object value = worksheet.getRange("A1").getValue();
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - <code>true</code> if string values are automatically parsed when assigned to a range; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getAutoRoundValue()">
<h3>getAutoRoundValue</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">getAutoRoundValue</span>()</div>
<div class="block">Gets whether numeric values are rounded to 15 significant digits when they are retrieved. <p>Use this property to determine whether the workbook applies automatic rounding  when reading numeric cell values.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue(1.2345678901234567d);
 workbook.setAutoRoundValue(true);
 boolean autoRoundValue = workbook.getAutoRoundValue();
 Object value = worksheet.getRange("A1").getValue();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if numeric values are rounded to 15 significant digits when retrieved; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setAutoRoundValue(boolean)">
<h3>setAutoRoundValue</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setAutoRoundValue</span><wbr><span class="parameters">(boolean&nbsp;value)</span></div>
<div class="block">Sets whether numeric values are rounded to 15 significant digits when they are retrieved. <p>Use this property to set whether the workbook applies automatic rounding when reading numeric cell values.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue(1.2345678901234567d);
 workbook.setAutoRoundValue(true);
 Object value = worksheet.getRange("A1").getValue();
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - <code>true</code> if numeric values are rounded to 15 significant digits when retrieved; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getBookView()">
<h3>getBookView</h3>
<div class="member-signature"><span class="return-type"><a href="IWorkbookView.html" title="interface in com.grapecity.documents.excel">IWorkbookView</a></span>&nbsp;<span class="element-name">getBookView</span>()</div>
<div class="block">Gets the view settings of this workbook. <p>Use the returned  <a href="IWorkbookView.html" title="interface in com.grapecity.documents.excel"><code>IWorkbookView</code></a> object to configure workbook-level display options such as workbook tabs, scroll bars, and tab ratio.</p>
<pre><code data-language="Java">
 IWorkbookView bookView = workbook.getBookView();
 bookView.setDisplayWorkbookTabs(true);
 bookView.setDisplayVerticalScrollBar(false);
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The <a href="IWorkbookView.html" title="interface in com.grapecity.documents.excel"><code>IWorkbookView</code></a> object that represents the view settings of this workbook.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getProtectStructure()">
<h3>getProtectStructure</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">getProtectStructure</span>()</div>
<div class="block">/ Gets a value indicating whether the workbook structure is protected. <p>When the workbook structure is protected, the order of worksheets cannot be changed  until the protection is removed by using  <a href="#unprotect()"><code>unprotect()</code></a>.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue("Quarterly Report");
 workbook.protect(true);
 boolean protectStructure = workbook.getProtectStructure();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if the order of the sheets in the workbook is protected; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getProtectWindows()">
<h3>getProtectWindows</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">getProtectWindows</span>()</div>
<div class="block">Gets a value indicating whether the workbook windows are protected. <p>This property reflects the workbook window protection state set by  <a href="#protect(boolean,boolean)"><code>protect(boolean,boolean)</code></a>. When workbook windows are protected,  the window layout cannot be modified until the protection is removed.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue("Quarterly Report");
 workbook.protect(true, true);
 boolean protectWindows = workbook.getProtectWindows();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if the workbook windows are protected; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getSignatures()">
<h3>getSignatures</h3>
<div class="member-signature"><span class="return-type"><a href="ISignatureSet.html" title="interface in com.grapecity.documents.excel">ISignatureSet</a></span>&nbsp;<span class="element-name">getSignatures</span>()</div>
<div class="block">Gets the collection of digital signatures attached to the workbook. <p>The returned  <a href="ISignatureSet.html" title="interface in com.grapecity.documents.excel"><code>ISignatureSet</code></a> provides access to the signatures in the document, including signature lines and non-visible signatures.</p>
<pre><code data-language="Java">
 workbook.getSignatures().addSignatureLine(worksheet, 100.0, 50.0);
 ISignatureSet signatures = workbook.getSignatures();
 ISignature signature = signatures.get(0);
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The collection of digital signatures attached to the workbook.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getBuiltInDocumentProperties()">
<h3>getBuiltInDocumentProperties</h3>
<div class="member-signature"><span class="return-type"><a href="IBuiltInDocumentPropertyCollection.html" title="interface in com.grapecity.documents.excel">IBuiltInDocumentPropertyCollection</a></span>&nbsp;<span class="element-name">getBuiltInDocumentProperties</span>()</div>
<div class="block">Gets the collection of built-in document properties in the workbook. <p>The returned  <a href="IBuiltInDocumentPropertyCollection.html" title="interface in com.grapecity.documents.excel"><code>IBuiltInDocumentPropertyCollection</code></a> provides access to built-in metadata such as author, title, subject, company, and other standard  document properties.</p>
<pre><code data-language="Java">
 workbook.getBuiltInDocumentProperties().setAuthor("Author");
 workbook.getBuiltInDocumentProperties().setCompany("Example");
 IBuiltInDocumentPropertyCollection properties = workbook.getBuiltInDocumentProperties();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The collection that represents all built-in document properties of the workbook.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getCustomDocumentProperties()">
<h3>getCustomDocumentProperties</h3>
<div class="member-signature"><span class="return-type"><a href="ICustomDocumentPropertyCollection.html" title="interface in com.grapecity.documents.excel">ICustomDocumentPropertyCollection</a></span>&nbsp;<span class="element-name">getCustomDocumentProperties</span>()</div>
<div class="block">Gets the collection of custom document properties in the workbook. <p>Use the returned  <a href="ICustomDocumentPropertyCollection.html" title="interface in com.grapecity.documents.excel"><code>ICustomDocumentPropertyCollection</code></a> to add, remove, and retrieve workbook metadata defined by the application, such as string,  numeric, Boolean, date, or linked-content properties.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue("Quarterly Report");
 workbook.getNames().add("ReportTitle", "=Sheet1!$A$1");
 ICustomDocumentPropertyCollection properties = workbook.getCustomDocumentProperties();
 properties.add("Department", "Finance");
 properties.addLinkToContent("TitleProperty", "ReportTitle");
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The collection that represents all custom document properties of the workbook.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getCustomXmlParts()">
<h3>getCustomXmlParts</h3>
<div class="member-signature"><span class="return-type"><a href="ICustomXmlPartCollection.html" title="interface in com.grapecity.documents.excel">ICustomXmlPartCollection</a></span>&nbsp;<span class="element-name">getCustomXmlParts</span>()</div>
<div class="block">Gets the collection of Custom XML parts in the workbook. <p>Use the returned  <a href="ICustomXmlPartCollection.html" title="interface in com.grapecity.documents.excel"><code>ICustomXmlPartCollection</code></a> to add, retrieve, enumerate, or remove workbook-level Custom XML parts. Custom XML parts are stored in the OpenXML package as raw XML  payloads and are preserved when saving to OpenXML workbook formats such as XLSX and XLSM.</p> <p>This API stores and returns the XML bytes only. It does not validate the XML against a schema.</p>
<pre><code data-language="Java">
 Workbook workbook = new Workbook();
 ICustomXmlPart customXmlPart = workbook.getCustomXmlParts().add();
 customXmlPart.setData("&lt;payload&gt;&lt;customer id=\"42\"/&gt;&lt;/payload&gt;"
         .getBytes(java.nio.charset.StandardCharsets.UTF_8));
 String customXmlPartId = customXmlPart.getId();
 workbook.save("customXmlWorkbook.xlsm");

 Workbook uploadedWorkbook = new Workbook();
 uploadedWorkbook.open("customXmlWorkbook.xlsm");
 ICustomXmlPart uploadedPart = uploadedWorkbook.getCustomXmlParts().get(customXmlPartId);
 byte[] uploadedXmlData = uploadedPart.getData();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The collection that represents all Custom XML parts in the workbook.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getCustomViews()">
<h3>getCustomViews</h3>
<div class="member-signature"><span class="return-type"><a href="ICustomViews.html" title="interface in com.grapecity.documents.excel">ICustomViews</a></span>&nbsp;<span class="element-name">getCustomViews</span>()</div>
<div class="block">Gets the custom views of the workbook. <p>The returned  <a href="ICustomViews.html" title="interface in com.grapecity.documents.excel"><code>ICustomViews</code></a> collection contains the custom views stored in the workbook. Each custom view is represented by an  <a href="ICustomView.html" title="interface in com.grapecity.documents.excel"><code>ICustomView</code></a> object and stores the view state of all worksheets in the current workbook.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue("Name");
 ICustomViews customViews = workbook.getCustomViews();
 customViews.add("Normal", true, true);
 ICustomView customView = workbook.getCustomViews().get("Normal");
 customView.show();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The <a href="ICustomViews.html" title="interface in com.grapecity.documents.excel"><code>ICustomViews</code></a> collection that contains the workbook's custom views.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getWriteProtection()">
<h3>getWriteProtection</h3>
<div class="member-signature"><span class="return-type"><a href="WriteProtection.html" title="class in com.grapecity.documents.excel">WriteProtection</a></span>&nbsp;<span class="element-name">getWriteProtection</span>()</div>
<div class="block">Gets the workbook write protection options. <p>The returned  <a href="WriteProtection.html" title="class in com.grapecity.documents.excel"><code>WriteProtection</code></a> object provides access to settings that control write protection behavior when the workbook is opened in an Excel application, such as  recommending read-only mode and setting a password required for modification.</p>
<pre><code data-language="Java">
 WriteProtection protection = workbook.getWriteProtection();
 protection.setWriteReservedBy("User");
 protection.setReadOnlyRecommended(true);
 String password = getPasswordFromSecureSource();
 protection.setWritePassword(password);
 boolean writeReserved = protection.getWriteReserved();
 boolean passwordMatches = protection.validatePassword(password);
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The <a href="WriteProtection.html" title="class in com.grapecity.documents.excel"><code>WriteProtection</code></a> object for the workbook.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getEnableCalculation()">
<h3>getEnableCalculation</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">getEnableCalculation</span>()</div>
<div class="block">Gets whether the calculation engine is enabled for the workbook. <p>When this property is  <code>false</code>, formulas in the current workbook are no longer  recalculated. If formula results are retrieved while calculation is disabled, the last  calculated results from before calculation was disabled are returned.</p> <p>This property is intended for large batch updates of values or formulas when updated  calculation results are not needed until the batch is complete. Set this property to  <code>false</code> before the batch to improve performance, and set it back to <code>true</code> when you need to calculate the workbook again.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue(1);
 worksheet.getRange("B1").setFormula("=A1*2");
 workbook.calculate();
 workbook.setEnableCalculation(false);
 worksheet.getRange("A1").setValue(10);
 workbook.calculate();
 Object value = worksheet.getRange("B1").getValue();
 boolean enabled = workbook.getEnableCalculation();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if the calculation engine is enabled; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setEnableCalculation(boolean)">
<h3>setEnableCalculation</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setEnableCalculation</span><wbr><span class="parameters">(boolean&nbsp;value)</span></div>
<div class="block">Sets whether the calculation engine is enabled for the workbook. <p>When this property is  <code>false</code>, formulas in the current workbook are no longer  recalculated. If formula results are retrieved while calculation is disabled, the last  calculated results from before calculation was disabled are returned.</p> <p>This property is intended for large batch updates of values or formulas when updated  calculation results are not needed until the batch is complete. Set this property to  <code>false</code> before the batch to improve performance, and set it back to <code>true</code> when you need to calculate the workbook again.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue(1);
 worksheet.getRange("B1").setFormula("=A1*2");
 workbook.calculate();
 workbook.setEnableCalculation(false);
 worksheet.getRange("A1").setValue(10);
 workbook.calculate();
 Object value = worksheet.getRange("B1").getValue();
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - <code>true</code> if the calculation engine is enabled; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getCulture()">
<h3>getCulture</h3>
<div class="member-signature"><span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Locale.html" title="class or interface in java.util">Locale</a></span>&nbsp;<span class="element-name">getCulture</span>()</div>
<div class="block">Gets the culture information of the workbook. <p>The returned culture affects culture-related features such as localized  formatting and formula behavior. If no culture has been explicitly set,  the default value is  <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Locale.html#getDefault()" title="class or interface in java.util"><code>Locale.getDefault()</code></a>.</p>
<pre><code data-language="Java">
 workbook.setCulture(Locale.US);
 worksheet.getRange("A1").setValue(43245.5922);
 worksheet.getRange("A1").setNumberFormat("[$-x-sysdate]dddd, mmmm dd, yyyy");
 String text = worksheet.getRange("A1").getText();
 Locale culture = workbook.getCulture();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The culture information of the workbook.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setCulture(java.util.Locale)">
<h3>setCulture</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setCulture</span><wbr><span class="parameters">(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Locale.html" title="class or interface in java.util">Locale</a>&nbsp;value)</span></div>
<div class="block">Sets the culture for the workbook. <p>This setting affects culture-sensitive features such as localized  formulas and culture-dependent date and time formats.</p> <p>The locale should include both language and country or region, such as  <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Locale.html#CHINA" title="class or interface in java.util"><code>Locale.CHINA</code></a>,  <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Locale.html#KOREA" title="class or interface in java.util"><code>Locale.KOREA</code></a>, or  <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Locale.html#US" title="class or interface in java.util"><code>Locale.US</code></a>.</p>
<pre><code data-language="Java">
 workbook.setCulture(Locale.US);
 worksheet.getRange("A1").setValue(43245.5922);
 worksheet.getRange("A1").setNumberFormat("[$-x-sysdate]dddd, mmmm dd, yyyy");
 String text = worksheet.getRange("A1").getText();
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - The locale to apply to the workbook. Use a locale that includes both language and country or region.</dd>
<dt>API Note:</dt>
<dd>The culture is init-only. It must be set in the initialization code of the workbook instance.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getDefaultTableStyle()">
<h3>getDefaultTableStyle</h3>
<div class="member-signature"><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">getDefaultTableStyle</span>()</div>
<div class="block">Gets the table style name applied by default to newly created tables in the workbook. <p>Use this method to retrieve the table style name that new tables use by default in the workbook.</p>
<pre><code data-language="Java">
 workbook.setDefaultTableStyle("TableStyleMedium3");
 worksheet.getRange("A1:B2").setValue(new Object[][]{
         {"Product", "Sales"},
         {"Tablet", 1200}
 });
 ITable table = worksheet.getTables().add(worksheet.getRange("A1:B2"), true);
 ITableStyle tableStyle = table.getTableStyle();
 String tableStyleName = tableStyle.getName();
 String defaultTableStyle = workbook.getDefaultTableStyle();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The name of the default table style.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setDefaultTableStyle(java.lang.String)">
<h3>setDefaultTableStyle</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setDefaultTableStyle</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 table style name applied by default to newly created tables in the workbook. <p>Use this method to set the table style name that new tables use by default in the workbook.</p>
<pre><code data-language="Java">
 workbook.setDefaultTableStyle("TableStyleMedium3");
 worksheet.getRange("A1:B2").setValue(new Object[][]{
         {"Product", "Sales"},
         {"Tablet", 1200}
 });
 ITable table = worksheet.getTables().add(worksheet.getRange("A1:B2"), true);
 ITableStyle tableStyle = table.getTableStyle();
 String tableStyleName = tableStyle.getName();
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - The name of the default table style.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getNames()">
<h3>getNames</h3>
<div class="member-signature"><span class="return-type"><a href="INames.html" title="interface in com.grapecity.documents.excel">INames</a></span>&nbsp;<span class="element-name">getNames</span>()</div>
<div class="block">Gets the collection of workbook-defined names. <p>Use the returned  <a href="INames.html" title="interface in com.grapecity.documents.excel"><code>INames</code></a> collection to add, retrieve, and manage names defined at the workbook level.</p>
<pre><code data-language="Java">
 workbook.getNames().add("SalesTotal", "=Sheet1!$A$1:$A$3");
 INames names = workbook.getNames();
 IName name = names.get("SalesTotal");
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The <a href="INames.html" title="interface in com.grapecity.documents.excel"><code>INames</code></a> collection that represents the workbook-specified names.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getAuthor()">
<h3>getAuthor</h3>
<div class="member-signature"><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">getAuthor</span>()</div>
<div class="block">Gets the author of the workbook. <p>Use  <a href="#setAuthor(java.lang.String)"><code>setAuthor(String)</code></a> to assign the author metadata before retrieving it.</p>
<pre><code data-language="Java">
 workbook.setAuthor("Author");
 String author = workbook.getAuthor();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The author of the workbook.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setAuthor(java.lang.String)">
<h3>setAuthor</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setAuthor</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 author of the workbook.
 <pre><code data-language="Java">
 workbook.setAuthor("Author");
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - The author of the workbook.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getPivotCaches()">
<h3>getPivotCaches</h3>
<div class="member-signature"><span class="return-type"><a href="IPivotCaches.html" title="interface in com.grapecity.documents.excel">IPivotCaches</a></span>&nbsp;<span class="element-name">getPivotCaches</span>()</div>
<div class="block">Gets the  <a href="IPivotCaches.html" title="interface in com.grapecity.documents.excel"><code>IPivotCaches</code></a> collection that contains all <a href="IPivotTable.html" title="interface in com.grapecity.documents.excel"><code>IPivotTable</code></a> caches in the workbook.<p>Use this method to access existing PivotTable caches or create a new cache from source data before adding a PivotTable.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1:B4").setValue(new Object[][] {
     {"Product", "Sales"},
     {"Apple", 100},
     {"Pear", 200},
     {"Orange", 150}
 });
 IPivotCaches pivotCaches = workbook.getPivotCaches();
 IPivotCache pivotCache = pivotCaches.create(worksheet.getRange("A1:B4"));
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The <a href="IPivotCaches.html" title="interface in com.grapecity.documents.excel"><code>IPivotCaches</code></a> collection for the workbook.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getReferenceStyle()">
<h3>getReferenceStyle</h3>
<div class="member-signature"><span class="return-type"><a href="ReferenceStyle.html" title="enum class in com.grapecity.documents.excel">ReferenceStyle</a></span>&nbsp;<span class="element-name">getReferenceStyle</span>()</div>
<div class="block">Gets the reference style used by the workbook. <p>The reference style determines how cell references are represented in formulas  and addresses, such as  <a href="ReferenceStyle.html#A1"><code>ReferenceStyle.A1</code></a> style references like <code>A1</code> or <a href="ReferenceStyle.html#R1C1"><code>ReferenceStyle.R1C1</code></a> style references like <code>R1C1</code>.</p>
<pre><code data-language="Java">
 worksheet.getRange("B1").setValue(100);
 worksheet.getRange("C1").setValue(200);
 workbook.setReferenceStyle(ReferenceStyle.R1C1);
 ReferenceStyle style = workbook.getReferenceStyle();
 worksheet.getRange("A1").setFormula("=RC[1]+RC[2]");
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The current reference style. The returned value is <a href="ReferenceStyle.html#A1"><code>ReferenceStyle.A1</code></a> or <a href="ReferenceStyle.html#R1C1"><code>ReferenceStyle.R1C1</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setReferenceStyle(com.grapecity.documents.excel.ReferenceStyle)">
<h3>setReferenceStyle</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setReferenceStyle</span><wbr><span class="parameters">(<a href="ReferenceStyle.html" title="enum class in com.grapecity.documents.excel">ReferenceStyle</a>&nbsp;value)</span></div>
<div class="block">Sets the reference style used for cell references in the workbook. <p>Use this method to switch between  <a href="ReferenceStyle.html#A1"><code>ReferenceStyle.A1</code></a> references such as <code>A1</code> and <a href="ReferenceStyle.html#R1C1"><code>ReferenceStyle.R1C1</code></a> references such as <code>R1C1</code> or <code>R[0]C[1]</code>.</p>
<pre><code data-language="Java">
 worksheet.getRange("B1").setValue(100);
 worksheet.getRange("C1").setValue(200);
 workbook.setReferenceStyle(ReferenceStyle.R1C1);
 worksheet.getRange("A1").setFormula("=RC[1]+RC[2]");
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - The reference style to use for cell references. Use <a href="ReferenceStyle.html#A1"><code>ReferenceStyle.A1</code></a> for A1-style references or <a href="ReferenceStyle.html#R1C1"><code>ReferenceStyle.R1C1</code></a> for R1C1-style references. If <code>null</code>,  A1-style references are used.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getStyles()">
<h3>getStyles</h3>
<div class="member-signature"><span class="return-type"><a href="IStyleCollection.html" title="interface in com.grapecity.documents.excel">IStyleCollection</a></span>&nbsp;<span class="element-name">getStyles</span>()</div>
<div class="block">Gets the collection of styles in the current workbook. <p>This method returns an  <a href="IStyleCollection.html" title="interface in com.grapecity.documents.excel"><code>IStyleCollection</code></a> that provides access to the built-in and custom styles available in the workbook.</p>
<pre><code data-language="Java">
 IStyleCollection styles = workbook.getStyles();
 IStyle style = styles.add("DataStyle");
 style.getFont().setBold(true);
 worksheet.getRange("A1").setStyle(style);
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The <a href="IStyleCollection.html" title="interface in com.grapecity.documents.excel"><code>IStyleCollection</code></a> that represents all styles in the current workbook.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getTableStyles()">
<h3>getTableStyles</h3>
<div class="member-signature"><span class="return-type"><a href="ITableStyleCollection.html" title="interface in com.grapecity.documents.excel">ITableStyleCollection</a></span>&nbsp;<span class="element-name">getTableStyles</span>()</div>
<div class="block">Gets the  <a href="ITableStyleCollection.html" title="interface in com.grapecity.documents.excel"><code>ITableStyleCollection</code></a> for the current workbook.<p>This collection contains the table styles available in the workbook,  including built-in styles and any custom table styles added to it.</p>
<pre><code data-language="Java">
 ITableStyleCollection tableStyles = workbook.getTableStyles();
 ITableStyle customStyle = tableStyles.add("SalesStyle");
 ITableStyle builtInStyle = tableStyles.get("TableStyleMedium3");
 worksheet.getTables().add(worksheet.getRange("A1:B3"), true).setTableStyle(builtInStyle);
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The <a href="ITableStyleCollection.html" title="interface in com.grapecity.documents.excel"><code>ITableStyleCollection</code></a> that represents the table styles in the current workbook.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getTheme()">
<h3>getTheme</h3>
<div class="member-signature"><span class="return-type"><a href="ITheme.html" title="interface in com.grapecity.documents.excel">ITheme</a></span>&nbsp;<span class="element-name">getTheme</span>()</div>
<div class="block">Gets the theme associated with the workbook. <p>Use this method to access the current  <a href="ITheme.html" title="interface in com.grapecity.documents.excel"><code>ITheme</code></a> applied to the workbook. The returned theme can be inspected or reused with  <a href="#setTheme(com.grapecity.documents.excel.ITheme)"><code>setTheme(ITheme)</code></a>.</p>
<pre><code data-language="Java">
 ITheme theme = Themes.GetFacet();
 workbook.setTheme(theme);
 String themeName = theme.getName();
 ITheme currentTheme = workbook.getTheme();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The <a href="ITheme.html" title="interface in com.grapecity.documents.excel"><code>ITheme</code></a> instance associated with the workbook.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setTheme(com.grapecity.documents.excel.ITheme)">
<h3>setTheme</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setTheme</span><wbr><span class="parameters">(<a href="ITheme.html" title="interface in com.grapecity.documents.excel">ITheme</a>&nbsp;value)</span></div>
<div class="block">Sets the theme applied to the current workbook. <p>The specified theme becomes the workbook's active theme and is used to update  theme-based formatting in the workbook.</p>
<pre><code data-language="Java">
 ITheme theme = Themes.GetFacet();
 workbook.setTheme(theme);
 String themeName = theme.getName();
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - The theme to apply to the workbook. Must not be <code>null</code>.</dd>
<dt>Throws:</dt>
<dd><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang">IllegalArgumentException</a></code> - if <code>value</code> is <code>null</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getIconSets()">
<h3>getIconSets</h3>
<div class="member-signature"><span class="return-type"><a href="IIconSets.html" title="interface in com.grapecity.documents.excel">IIconSets</a></span>&nbsp;<span class="element-name">getIconSets</span>()</div>
<div class="block">Gets the collection of icon sets available in the workbook. <p>The returned  <a href="IIconSets.html" title="interface in com.grapecity.documents.excel"><code>IIconSets</code></a> object can be used to retrieve built-in icon sets for icon set conditional formatting and icon-based filtering.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1:A3").setValue(new Object[][] {
     {"Score"},
     {30},
     {90}
 });
 IIconSetCondition condition = worksheet.getRange("A2:A3").getFormatConditions().addIconSetCondition();
 condition.setIconSet(workbook.getIconSets().get(IconSetType.Icon3TrafficLights1));
 IIconSets iconSets = workbook.getIconSets();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The collection of icon sets available in the workbook.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getWorksheets()">
<h3>getWorksheets</h3>
<div class="member-signature"><span class="return-type"><a href="IWorksheets.html" title="interface in com.grapecity.documents.excel">IWorksheets</a></span>&nbsp;<span class="element-name">getWorksheets</span>()</div>
<div class="block">Gets the  <a href="IWorksheets.html" title="interface in com.grapecity.documents.excel"><code>IWorksheets</code></a> collection that represents all worksheets in the workbook.<p>This method returns the workbook-level worksheets collection. Use the  returned collection to access worksheets by index or name, and to manage  worksheets in the workbook.</p>
<pre><code data-language="Java">
 worksheet.setName("Summary");
 IWorksheets sheets = workbook.getWorksheets();
 IWorksheet firstSheet = sheets.get(0);
 IWorksheet summarySheet = sheets.get("Summary");
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The <a href="IWorksheets.html" title="interface in com.grapecity.documents.excel"><code>IWorksheets</code></a> collection that represents all worksheets in the workbook.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getSheetTabs()">
<h3>getSheetTabs</h3>
<div class="member-signature"><span class="return-type"><a href="ISheetTabs.html" title="interface in com.grapecity.documents.excel">ISheetTabs</a></span>&nbsp;<span class="element-name">getSheetTabs</span>()</div>
<div class="block">Gets the collection of sheet tabs contained in the workbook. <p>Use the returned  <a href="ISheetTabs.html" title="interface in com.grapecity.documents.excel"><code>ISheetTabs</code></a> object to access sheet tab information such as the number of tabs or a specific tab by index or name.</p>
<pre><code data-language="Java">
 ISheetTabs sheetTabs = workbook.getSheetTabs();
 if (sheetTabs.getCount() &gt; 0) {
     ISheetTab firstTab = sheetTabs.get(0);
     String tabName = firstTab.getName();
 }
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>An <a href="ISheetTabs.html" title="interface in com.grapecity.documents.excel"><code>ISheetTabs</code></a> object that represents the sheet tabs in the workbook.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getActiveSheet()">
<h3>getActiveSheet</h3>
<div class="member-signature"><span class="return-type"><a href="IWorksheet.html" title="interface in com.grapecity.documents.excel">IWorksheet</a></span>&nbsp;<span class="element-name">getActiveSheet</span>()</div>
<div class="block">Gets the active worksheet in the workbook. <p>Returns the worksheet that is currently active in the workbook.  Returns  <code>null</code> if no worksheet is active.</p>
<pre><code data-language="Java">
 IWorksheet detailSheet = workbook.getWorksheets().add();
 detailSheet.activate();
 IWorksheet activeSheet = workbook.getActiveSheet();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The active <a href="IWorksheet.html" title="interface in com.grapecity.documents.excel"><code>IWorksheet</code></a>, or  <code>null</code> if no worksheet is active.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getSlicerCaches()">
<h3>getSlicerCaches</h3>
<div class="member-signature"><span class="return-type"><a href="ISlicerCaches.html" title="interface in com.grapecity.documents.excel">ISlicerCaches</a></span>&nbsp;<span class="element-name">getSlicerCaches</span>()</div>
<div class="block">Gets the  <a href="ISlicerCaches.html" title="interface in com.grapecity.documents.excel"><code>ISlicerCaches</code></a> collection associated with the workbook.<p>Use this collection to access existing slicer caches in the workbook or to add new ones for supported data sources such as tables and PivotTables.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1:B3").setValue(new Object[][]{
     {"Category", "Amount"},
     {"Fruit", 100},
     {"Vegetable", 200}
 });
 ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
 ISlicerCaches slicerCaches = workbook.getSlicerCaches();
 ISlicerCache slicerCache = slicerCaches.add(table, "Category");
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The <a href="ISlicerCaches.html" title="interface in com.grapecity.documents.excel"><code>ISlicerCaches</code></a> collection associated with the workbook.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="calculate()">
<h3>calculate</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">calculate</span>()</div>
<div class="block">Calculates formulas in the workbook as needed. <p>This method recalculates workbook formulas that require calculation.  If iterative calculation is enabled, all formulas in the workbook are marked  for recalculation before the calculation is performed.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue(100);
 worksheet.getRange("B1").setFormula("=A1*2");
 workbook.calculate();
 Object value = worksheet.getRange("B1").getValue();
 </code></pre></div>
</section>
</li>
<li>
<section class="detail" id="dirty()">
<h3>dirty</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">dirty</span>()</div>
<div class="block">Marks all formulas in the workbook as dirty so they are recalculated the next time calculation runs. <p>Use this method to invalidate cached formula results for the entire workbook.  After calling this method, invoke  <a href="#calculate()"><code>calculate()</code></a>, or retrieve formula results  while calculation is enabled, to trigger recalculation.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue(1);
 worksheet.getRange("A2").setFormula("=A1*2");
 workbook.dirty();
 workbook.calculate();
 Object value = worksheet.getRange("A2").getValue();
 </code></pre></div>
</section>
</li>
<li>
<section class="detail" id="fromJson(java.lang.String)">
<h3>fromJson</h3>
<div class="member-signature"><span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util">List</a>&lt;<a href="JsonError.html" title="class in com.grapecity.documents.excel">JsonError</a>&gt;</span>&nbsp;<span class="element-name">fromJson</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;json)</span></div>
<div class="block">Loads workbook content from a SpreadJS JSON (SSJSON) string into this workbook. <p>The returned list contains any  <a href="JsonError.html" title="class in com.grapecity.documents.excel"><code>JsonError</code></a> objects found during deserialization.</p>
<pre><code data-language="Java">
 String json = "{\"version\":\"7.0.0\",\"sheets\":{\"Sheet1\":{\"data\":{\"dataTable\":{\"0\":{\"0\":{\"value\":\"Name\"},\"1\":{\"value\":\"Test\"}}}}}}}";
 List&lt;JsonError&gt; errors = workbook.fromJson(json);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>json</code> - The SpreadJS JSON (SSJSON) string to load into this workbook. Must not be <code>null</code>.</dd>
<dt>Returns:</dt>
<dd>A list of <a href="JsonError.html" title="class in com.grapecity.documents.excel"><code>JsonError</code></a> objects found during deserialization.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="fromJson(java.lang.String,com.grapecity.documents.excel.DeserializationOptions)">
<h3>fromJson</h3>
<div class="member-signature"><span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util">List</a>&lt;<a href="JsonError.html" title="class in com.grapecity.documents.excel">JsonError</a>&gt;</span>&nbsp;<span class="element-name">fromJson</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;json,
 <a href="DeserializationOptions.html" title="class in com.grapecity.documents.excel">DeserializationOptions</a>&nbsp;deserializationOptions)</span></div>
<div class="block">Loads workbook content from a SpreadJS JSON (SSJSON) string into this workbook. <p>Use this method to control deserialization behavior with a  <a href="DeserializationOptions.html" title="class in com.grapecity.documents.excel"><code>DeserializationOptions</code></a> instance. The returned list contains any <a href="JsonError.html" title="class in com.grapecity.documents.excel"><code>JsonError</code></a> objects found during deserialization.</p>
<pre><code data-language="Java">
 String json = "{\"version\":\"7.0.0\",\"sheets\":{\"Sheet1\":{\"data\":{\"dataTable\":{\"0\":{\"0\":{\"value\":\"Name\"},\"1\":{\"value\":\"Test\"}}}}}}}";
 DeserializationOptions options = new DeserializationOptions();
 List&lt;JsonError&gt; errors = workbook.fromJson(json, options);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>json</code> - The SpreadJS JSON (SSJSON) string to load into this workbook. Must not be <code>null</code>.</dd>
<dd><code>deserializationOptions</code> - The <a href="DeserializationOptions.html" title="class in com.grapecity.documents.excel"><code>DeserializationOptions</code></a> object that controls how the JSON content is deserialized. If <code>null</code>, default deserialization options are used.</dd>
<dt>Returns:</dt>
<dd>A list of <a href="JsonError.html" title="class in com.grapecity.documents.excel"><code>JsonError</code></a> objects found during deserialization.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="fromJson(java.io.InputStream)">
<h3>fromJson</h3>
<div class="member-signature"><span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util">List</a>&lt;<a href="JsonError.html" title="class in com.grapecity.documents.excel">JsonError</a>&gt;</span>&nbsp;<span class="element-name">fromJson</span><wbr><span class="parameters">(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/InputStream.html" title="class or interface in java.io">InputStream</a>&nbsp;stream)</span></div>
<div class="block">Loads workbook content from a SpreadJS JSON (SSJSON) stream into this workbook. <p>The returned list contains any  <a href="JsonError.html" title="class in com.grapecity.documents.excel"><code>JsonError</code></a> objects found during deserialization.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue("Name");
 String json = workbook.toJson();
 DeserializationOptions options = new DeserializationOptions();
 options.setDoNotRecalculateAfterLoad(true);
 List&lt;JsonError&gt; errors = workbook.fromJson(
     new ByteArrayInputStream(json.getBytes())
 );
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>stream</code> - The input stream that provides the SpreadJS JSON (SSJSON) content to load. Must not be <code>null</code>.</dd>
<dt>Returns:</dt>
<dd>A list of <a href="JsonError.html" title="class in com.grapecity.documents.excel"><code>JsonError</code></a> objects found during deserialization.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="fromJson(java.io.InputStream,com.grapecity.documents.excel.DeserializationOptions)">
<h3>fromJson</h3>
<div class="member-signature"><span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util">List</a>&lt;<a href="JsonError.html" title="class in com.grapecity.documents.excel">JsonError</a>&gt;</span>&nbsp;<span class="element-name">fromJson</span><wbr><span class="parameters">(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/InputStream.html" title="class or interface in java.io">InputStream</a>&nbsp;stream,
 <a href="DeserializationOptions.html" title="class in com.grapecity.documents.excel">DeserializationOptions</a>&nbsp;deserializationOptions)</span></div>
<div class="block">Loads workbook content from a SpreadJS JSON (SSJSON) stream into this workbook. <p>Use this method to control deserialization behavior with a  <a href="DeserializationOptions.html" title="class in com.grapecity.documents.excel"><code>DeserializationOptions</code></a> instance. The returned list contains any <a href="JsonError.html" title="class in com.grapecity.documents.excel"><code>JsonError</code></a> objects found during deserialization.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue("Name");
 String json = workbook.toJson();
 DeserializationOptions options = new DeserializationOptions();
 options.setDoNotRecalculateAfterLoad(true);
 List&lt;JsonError&gt; errors = workbook.fromJson(
     new ByteArrayInputStream(json.getBytes()),
     options
 );
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>stream</code> - The input stream that provides the SpreadJS JSON (SSJSON) content to load. Must not be <code>null</code>.</dd>
<dd><code>deserializationOptions</code> - The <a href="DeserializationOptions.html" title="class in com.grapecity.documents.excel"><code>DeserializationOptions</code></a> object that controls how the JSON content is deserialized. If <code>null</code>, default deserialization options are used.</dd>
<dt>Returns:</dt>
<dd>A list of <a href="JsonError.html" title="class in com.grapecity.documents.excel"><code>JsonError</code></a> objects found during deserialization.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="toJson()">
<h3>toJson</h3>
<div class="member-signature"><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">toJson</span>()</div>
<div class="block">Generates a JSON string from the workbook. <p>Use this method to serialize the current workbook content to JSON.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1:B2").setValue(new Object[][] {
     {"Name", "Value"},
     {"Test", 100}
 });
 String json = workbook.toJson();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The JSON string that represents the current workbook.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="toJson(com.grapecity.documents.excel.SerializationOptions)">
<h3>toJson</h3>
<div class="member-signature"><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">toJson</span><wbr><span class="parameters">(<a href="SerializationOptions.html" title="class in com.grapecity.documents.excel">SerializationOptions</a>&nbsp;serializationOptions)</span></div>
<div class="block">Generates a JSON string from the workbook using the specified serialization options. <p>Use  <a href="SerializationOptions.html" title="class in com.grapecity.documents.excel"><code>SerializationOptions</code></a> to control how workbook content is serialized, such as whether styles or formulas are included in the generated JSON.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1:B2").setValue(new Object[][] {
     {"Name", "Value"},
     {"Test", 100}
 });
 SerializationOptions options = new SerializationOptions();
 options.setIgnoreStyle(true);
 String json = workbook.toJson(options);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>serializationOptions</code> - The <a href="SerializationOptions.html" title="class in com.grapecity.documents.excel"><code>SerializationOptions</code></a> object that specifies how the workbook is serialized to JSON.</dd>
<dt>Returns:</dt>
<dd>The JSON string that represents the workbook.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="toJson(java.io.OutputStream)">
<h3>toJson</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">toJson</span><wbr><span class="parameters">(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/OutputStream.html" title="class or interface in java.io">OutputStream</a>&nbsp;stream)</span></div>
<div class="block">Generates a JSON stream from the workbook. <p>This method writes the workbook content to the specified output stream in JSON format.  The current implementation forwards to  <a href="#toJson(java.io.OutputStream,com.grapecity.documents.excel.SerializationOptions)"><code>toJson(OutputStream,SerializationOptions)</code></a> with <code>null</code> for the serialization options.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1:B2").setValue(new Object[][] {
     {"Name", "Value"},
     {"Test", 100}
 });
 ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
 workbook.toJson(outputStream);
 String json = new String(outputStream.toByteArray(), java.nio.charset.StandardCharsets.UTF_8);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>stream</code> - The output stream that receives the generated JSON data.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="toJson(java.io.OutputStream,com.grapecity.documents.excel.SerializationOptions)">
<h3>toJson</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">toJson</span><wbr><span class="parameters">(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/OutputStream.html" title="class or interface in java.io">OutputStream</a>&nbsp;stream,
 <a href="SerializationOptions.html" title="class in com.grapecity.documents.excel">SerializationOptions</a>&nbsp;serializationOptions)</span></div>
<div class="block">Serializes the workbook to JSON and writes the content to the specified output stream. <p>Use  <a href="SerializationOptions.html" title="class in com.grapecity.documents.excel"><code>SerializationOptions</code></a> to control how workbook content is serialized, such as whether styles or formulas are included in the generated JSON.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1:B2").setValue(new Object[][] {
     {"Name", "Value"},
     {"Test", 100}
 });
 ByteArrayOutputStream stream = new ByteArrayOutputStream();
 SerializationOptions serializationOptions = new SerializationOptions();
 serializationOptions.setIgnoreStyle(true);
 workbook.toJson(stream, serializationOptions);
 String json = new String(stream.toByteArray(), java.nio.charset.StandardCharsets.UTF_8);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>stream</code> - The output stream that receives the generated JSON content.</dd>
<dd><code>serializationOptions</code> - The <a href="SerializationOptions.html" title="class in com.grapecity.documents.excel"><code>SerializationOptions</code></a> object that specifies how the workbook is serialized to JSON.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isEncryptedFile(java.lang.String)">
<h3>isEncryptedFile</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">isEncryptedFile</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;fileName)</span></div>
<div class="block">Determines whether the specified file is password protected. <p>Use this method to check whether a workbook file requires a password before  opening it. If the file is encrypted, open it with  <a href="#open(java.lang.String,java.lang.String)"><code>open(String,String)</code></a>.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue("Confidential");
 String fileName = java.nio.file.Files.createTempFile("protected-report", ".xlsx").toString();
 String password = getPasswordFromSecureSource();
 workbook.save(fileName, password);
 boolean isEncrypted = workbook.isEncryptedFile(fileName);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>fileName</code> - The name or path of the file to check. Must not be <code>null</code>.</dd>
<dt>Returns:</dt>
<dd><code>true</code> if the specified file is password protected; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isEncryptedFile(java.io.InputStream)">
<h3>isEncryptedFile</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">isEncryptedFile</span><wbr><span class="parameters">(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/InputStream.html" title="class or interface in java.io">InputStream</a>&nbsp;fileStream)</span></div>
<div class="block">Determines whether the specified file stream is password protected. <p>Use this method before opening a workbook stream to decide whether a password  should be supplied to  <a href="#open(java.io.InputStream,java.lang.String)"><code>open(InputStream,String)</code></a>.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue("Confidential");
 ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
 String password = getPasswordFromSecureSource();
 workbook.save(outputStream, password);
 InputStream fileStream = new ByteArrayInputStream(outputStream.toByteArray());
 boolean encrypted = workbook.isEncryptedFile(fileStream);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>fileStream</code> - The input file stream to inspect.</dd>
<dt>Returns:</dt>
<dd><code>true</code> if the specified file stream is password protected; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="open(java.lang.String)">
<h3>open</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">open</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;fileName)</span></div>
<div class="block">Opens a workbook file. <p>This method opens the specified file by using the default open options.  The file type is inferred from the file name extension.</p> <p>The  <code>fileName</code> value is used directly as a file system path. Pass only validated paths from trusted sources.</p>
<pre><code data-language="Java">
 String filePath = java.nio.file.Paths.get(System.getProperty("user.dir"), "QuarterlyReport.xlsx").toString();
 workbook.open(filePath);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>fileName</code> - The path and name of the workbook file to open. Must not be <code>null</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="open(java.lang.String,com.grapecity.documents.excel.DeserializationOptions)">
<h3>open</h3>
<div class="member-signature"><span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util">List</a>&lt;<a href="JsonError.html" title="class in com.grapecity.documents.excel">JsonError</a>&gt;</span>&nbsp;<span class="element-name">open</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;fileName,
 <a href="DeserializationOptions.html" title="class in com.grapecity.documents.excel">DeserializationOptions</a>&nbsp;deserializationOptions)</span></div>
<div class="block">Opens the specified JSON file. <p>Uses the provided  <a href="DeserializationOptions.html" title="class in com.grapecity.documents.excel"><code>DeserializationOptions</code></a> to control how the JSON content is deserialized into the workbook.</p>
<pre><code data-language="Java">
 DeserializationOptions options = new DeserializationOptions();
 options.setIgnoreStyle(true);
 List&lt;JsonError&gt; errors = workbook.open("spread_js_exported.json", options);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>fileName</code> - The JSON file to open.</dd>
<dd><code>deserializationOptions</code> - The options that control JSON deserialization.</dd>
<dt>Returns:</dt>
<dd>A list of <a href="JsonError.html" title="class in com.grapecity.documents.excel"><code>JsonError</code></a> objects generated while opening the JSON file.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="open(java.lang.String,java.lang.String)">
<h3>open</h3>
<div class="member-signature"><span class="annotations"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Deprecated.html" title="class or interface in java.lang">@Deprecated</a>
</span><span class="return-type">void</span>&nbsp;<span class="element-name">open</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;fileName,
 <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;password)</span></div>
<div class="deprecation-block"><span class="deprecated-label">Deprecated.</span>
<div class="deprecation-comment">Use <a href="#open(java.lang.String,com.grapecity.documents.excel.OpenOptionsBase)"><code>open(String,OpenOptionsBase)</code></a> instead.</div>
</div>
<div class="block">Opens the specified Excel file with a password. <p>This method opens a password-protected workbook from the specified file path.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>fileName</code> - The path and name of the Excel file to open. Must not be <code>null</code>.</dd>
<dd><code>password</code> - The password for the file. Use the password required by the workbook; <code>null</code> if no password is needed.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="open(java.lang.String,com.grapecity.documents.excel.OpenOptionsBase)">
<h3>open</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">open</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;fileName,
 <a href="OpenOptionsBase.html" title="class in com.grapecity.documents.excel">OpenOptionsBase</a>&nbsp;options)</span></div>
<div class="block">Opens a file with the specified open options. <p>Use this overload to control how the workbook is loaded for supported file formats.  The  <code>options</code> argument can be an instance of <a href="CsvOpenOptions.html" title="class in com.grapecity.documents.excel"><code>CsvOpenOptions</code></a>,  <a href="SjsOpenOptions.html" title="class in com.grapecity.documents.excel"><code>SjsOpenOptions</code></a>,  <a href="XlsmOpenOptions.html" title="class in com.grapecity.documents.excel"><code>XlsmOpenOptions</code></a>,  <a href="XlsxOpenOptions.html" title="class in com.grapecity.documents.excel"><code>XlsxOpenOptions</code></a>, or  <a href="XltxOpenOptions.html" title="class in com.grapecity.documents.excel"><code>XltxOpenOptions</code></a>.</p>
<pre><code data-language="Java">
 XlsxOpenOptions options = new XlsxOpenOptions();
 options.setDoNotRecalculateAfterOpened(true);
 String fileName = java.nio.file.Paths.get(System.getProperty("user.dir"), "OpenWorkbookWithOptions.xlsx").toString();
 workbook.open(fileName, options);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>fileName</code> - The file to open.</dd>
<dd><code>options</code> - The open options for the file. Must be compatible with the file format; <code>null</code> uses no explicit open options.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="open(java.lang.String,com.grapecity.documents.excel.OpenFileFormat)">
<h3>open</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">open</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;fileName,
 <a href="OpenFileFormat.html" title="enum class in com.grapecity.documents.excel">OpenFileFormat</a>&nbsp;fileFormat)</span></div>
<div class="block">Opens a file using the specified file format. <p>Use this overload when the file format should be provided explicitly  instead of being inferred from the file name.</p>
<pre><code data-language="Java">
 workbook.open("Template.sjs", OpenFileFormat.Sjs);
 IWorksheet firstSheet = workbook.getWorksheets().get(0);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>fileName</code> - The file to open.</dd>
<dd><code>fileFormat</code> - The format of the file.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="open(java.io.InputStream)">
<h3>open</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">open</span><wbr><span class="parameters">(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/InputStream.html" title="class or interface in java.io">InputStream</a>&nbsp;fileStream)</span></div>
<div class="block">Opens the specified Excel file stream. <p>Use this method to load workbook data from an  <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/InputStream.html" title="class or interface in java.io"><code>InputStream</code></a>.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue("Name");
 ByteArrayOutputStream stream = new ByteArrayOutputStream();
 workbook.save(stream, SaveFileFormat.Xlsx);
 InputStream fileStream = new ByteArrayInputStream(stream.toByteArray());
 workbook.open(fileStream);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>fileStream</code> - The stream that contains the Excel file data. Must not be <code>null</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="open(java.io.InputStream,java.lang.String)">
<h3>open</h3>
<div class="member-signature"><span class="annotations"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Deprecated.html" title="class or interface in java.lang">@Deprecated</a>
</span><span class="return-type">void</span>&nbsp;<span class="element-name">open</span><wbr><span class="parameters">(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/InputStream.html" title="class or interface in java.io">InputStream</a>&nbsp;fileStream,
 <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;password)</span></div>
<div class="deprecation-block"><span class="deprecated-label">Deprecated.</span>
<div class="deprecation-comment">Use <a href="#open(java.io.InputStream,com.grapecity.documents.excel.OpenOptionsBase)"><code>open(InputStream,OpenOptionsBase)</code></a> instead.</div>
</div>
<div class="block">Opens the specified Excel file stream with a password. <p>Use this method to load a password-protected workbook from an  <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/InputStream.html" title="class or interface in java.io"><code>InputStream</code></a>.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>fileStream</code> - The file stream to open. Must not be <code>null</code>.</dd>
<dd><code>password</code> - The password for the file. Use an empty string if the file has no password.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="open(java.io.InputStream,com.grapecity.documents.excel.OpenOptionsBase)">
<h3>open</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">open</span><wbr><span class="parameters">(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/InputStream.html" title="class or interface in java.io">InputStream</a>&nbsp;fileStream,
 <a href="OpenOptionsBase.html" title="class in com.grapecity.documents.excel">OpenOptionsBase</a>&nbsp;options)</span></div>
<div class="block">Opens the stream with specified options.
 <pre><code data-language="Java">
 String fileName = java.nio.file.Paths.get(System.getProperty("user.dir"), "Report.xlsx").toString();
 XlsxOpenOptions options = new XlsxOpenOptions();
 options.setDoNotRecalculateAfterOpened(true);
 try (InputStream fileStream = new java.io.FileInputStream(fileName)) {
     workbook.open(fileStream, options);
 }
 IWorksheet firstSheet = workbook.getWorksheets().get(0);
 String sheetName = firstSheet.getName();
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>fileStream</code> - The file stream.</dd>
<dd><code>options</code> - The options used when opening the file stream. Possible types:<ul> <li> <a href="CsvOpenOptions.html" title="class in com.grapecity.documents.excel"><code>CsvOpenOptions</code></a> </li><li> <a href="SjsOpenOptions.html" title="class in com.grapecity.documents.excel"><code>SjsOpenOptions</code></a> </li><li> <a href="XlsmOpenOptions.html" title="class in com.grapecity.documents.excel"><code>XlsmOpenOptions</code></a> </li><li> <a href="XlsxOpenOptions.html" title="class in com.grapecity.documents.excel"><code>XlsxOpenOptions</code></a> </li><li> <a href="XltxOpenOptions.html" title="class in com.grapecity.documents.excel"><code>XltxOpenOptions</code></a> </li></ul></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="open(java.io.InputStream,com.grapecity.documents.excel.OpenFileFormat)">
<h3>open</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">open</span><wbr><span class="parameters">(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/InputStream.html" title="class or interface in java.io">InputStream</a>&nbsp;fileStream,
 <a href="OpenFileFormat.html" title="enum class in com.grapecity.documents.excel">OpenFileFormat</a>&nbsp;fileFormat)</span></div>
<div class="block">Opens the specified format file stream.
 <pre><code data-language="Java">
 String fileName = java.nio.file.Paths.get(System.getProperty("user.dir"), "Report.xlsx").toString();
 try (InputStream fileStream = new java.io.FileInputStream(fileName)) {
     workbook.open(fileStream, OpenFileFormat.Xlsx);
 }
 IWorksheet firstSheet = workbook.getWorksheets().get(0);
 String sheetName = firstSheet.getName();
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>fileStream</code> - The specified file stream.</dd>
<dd><code>fileFormat</code> - The format of the file stream.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="save(java.lang.String)">
<h3>save</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">save</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;fileName)</span></div>
<div class="block">Saves the workbook to disk.
 <pre><code data-language="Java">
 worksheet.getRange("A1:B2").setValue(new Object[][] {
     {"Name", "Value"},
     {"Test", 100}
 });
 String filePath = java.nio.file.Paths.get(System.getProperty("user.dir"), "SalesReport.xlsx").toString();
 workbook.save(filePath);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>fileName</code> - The path of the destination file.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="save(java.lang.String,java.lang.String)">
<h3>save</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">save</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;fileName,
 <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;password)</span></div>
<div class="block">Saves the workbook to the specified Excel file with a password. <p>Use this method to write the current workbook to disk and apply password protection  to the saved file.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue("Name");
 worksheet.getRange("B1").setValue("Value");
 worksheet.getRange("A2").setValue("Test");
 worksheet.getRange("B2").setValue(100);
 String password = getPasswordFromSecureSource();
 String filePath = java.nio.file.Paths.get(System.getProperty("user.dir"), "ProtectedReport.xlsx").toString();
 workbook.save(filePath, password);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>fileName</code> - The path of the destination file.</dd>
<dd><code>password</code> - The password used to protect the saved file.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="save(java.lang.String,com.grapecity.documents.excel.SaveOptionsBase)">
<h3>save</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">save</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;fileName,
 <a href="SaveOptionsBase.html" title="class in com.grapecity.documents.excel">SaveOptionsBase</a>&nbsp;options)</span></div>
<div class="block">Saves the workbook to a file with the specified save options. <p>Use this method to control how the workbook is written by providing a  <a href="SaveOptionsBase.html" title="class in com.grapecity.documents.excel"><code>SaveOptionsBase</code></a> implementation for the target file type.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1:B2").setValue(new Object[][] {
     {"Name", "Value"},
     {"Test", 100}
 });
 PdfSaveOptions options = new PdfSaveOptions();
 workbook.save("report.pdf", options);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>fileName</code> - The path of the destination file.</dd>
<dd><code>options</code> - The save options that determine how the file is written. Supported types include <a href="CsvSaveOptions.html" title="class in com.grapecity.documents.excel"><code>CsvSaveOptions</code></a>,  <a href="drawing/HtmlSaveOptions.html" title="class in com.grapecity.documents.excel.drawing"><code>HtmlSaveOptions</code></a>,  <a href="PdfSaveOptions.html" title="class in com.grapecity.documents.excel"><code>PdfSaveOptions</code></a>,  <a href="SjsSaveOptions.html" title="class in com.grapecity.documents.excel"><code>SjsSaveOptions</code></a>,  <a href="XlsmSaveOptions.html" title="class in com.grapecity.documents.excel"><code>XlsmSaveOptions</code></a>,  <a href="XlsxSaveOptions.html" title="class in com.grapecity.documents.excel"><code>XlsxSaveOptions</code></a>, and  <a href="XltxSaveOptions.html" title="class in com.grapecity.documents.excel"><code>XltxSaveOptions</code></a>.  <code>null</code> behavior is not specified.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="save(java.lang.String,com.grapecity.documents.excel.SaveFileFormat)">
<h3>save</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">save</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;fileName,
 <a href="SaveFileFormat.html" title="enum class in com.grapecity.documents.excel">SaveFileFormat</a>&nbsp;fileFormat)</span></div>
<div class="block">Saves the workbook to the specified file in the specified format. <p>Use this method when the target file format needs to be specified explicitly  instead of being inferred from the file name.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1:B2").setValue(new Object[][] {
     {"Name", "Value"},
     {"Test", 100}
 });
 String filePath = java.nio.file.Paths.get(System.getProperty("user.dir"), "SalesReport.xlsx").toString();
 workbook.save(filePath, SaveFileFormat.Xlsx);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>fileName</code> - The path of the destination file.</dd>
<dd><code>fileFormat</code> - The file format to use when saving the workbook.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="save(java.io.OutputStream)">
<h3>save</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">save</span><wbr><span class="parameters">(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/OutputStream.html" title="class or interface in java.io">OutputStream</a>&nbsp;outputStream)</span></div>
<div class="block">Saves the workbook to the specified stream. <p>Use this method to write the current workbook data to an  <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/OutputStream.html" title="class or interface in java.io"><code>OutputStream</code></a>.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1:B2").setValue(new Object[][] {
     {"Name", "Value"},
     {"Test", 100}
 });
 try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
     workbook.save(outputStream);
     byte[] bytes = outputStream.toByteArray();
 } catch (IOException e) {
 }
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>outputStream</code> - The output stream to which the workbook is saved. Must not be <code>null</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="save(java.io.OutputStream,java.lang.String)">
<h3>save</h3>
<div class="member-signature"><span class="annotations"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Deprecated.html" title="class or interface in java.lang">@Deprecated</a>
</span><span class="return-type">void</span>&nbsp;<span class="element-name">save</span><wbr><span class="parameters">(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/OutputStream.html" title="class or interface in java.io">OutputStream</a>&nbsp;outputStream,
 <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;password)</span></div>
<div class="deprecation-block"><span class="deprecated-label">Deprecated.</span>
<div class="deprecation-comment">Use <a href="#save(java.io.OutputStream,com.grapecity.documents.excel.SaveOptionsBase)"><code>save(OutputStream,SaveOptionsBase)</code></a> instead.</div>
</div>
<div class="block">Saves the workbook to the specified stream.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>outputStream</code> - The output stream to which the workbook is saved.</dd>
<dd><code>password</code> - The password of the file.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="save(java.io.OutputStream,com.grapecity.documents.excel.SaveOptionsBase)">
<h3>save</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">save</span><wbr><span class="parameters">(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/OutputStream.html" title="class or interface in java.io">OutputStream</a>&nbsp;fileStream,
 <a href="SaveOptionsBase.html" title="class in com.grapecity.documents.excel">SaveOptionsBase</a>&nbsp;options)</span></div>
<div class="block">Saves the workbook to a stream with the specified save options. <p>Use this method to write workbook data to an  <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/OutputStream.html" title="class or interface in java.io"><code>OutputStream</code></a> and control the output by providing a  <a href="SaveOptionsBase.html" title="class in com.grapecity.documents.excel"><code>SaveOptionsBase</code></a> implementation. Supported option types include  <a href="CsvSaveOptions.html" title="class in com.grapecity.documents.excel"><code>CsvSaveOptions</code></a>,  <a href="drawing/HtmlSaveOptions.html" title="class in com.grapecity.documents.excel.drawing"><code>HtmlSaveOptions</code></a>,  <a href="PdfSaveOptions.html" title="class in com.grapecity.documents.excel"><code>PdfSaveOptions</code></a>,  <a href="SjsSaveOptions.html" title="class in com.grapecity.documents.excel"><code>SjsSaveOptions</code></a>,  <a href="XlsmSaveOptions.html" title="class in com.grapecity.documents.excel"><code>XlsmSaveOptions</code></a>,  <a href="XlsxSaveOptions.html" title="class in com.grapecity.documents.excel"><code>XlsxSaveOptions</code></a>, and  <a href="XltxSaveOptions.html" title="class in com.grapecity.documents.excel"><code>XltxSaveOptions</code></a>.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1:B2").setValue(new Object[][] {
     {"Name", "Value"},
     {"Test", 100}
 });
 XlsxSaveOptions options = new XlsxSaveOptions();
 options.setIncludeAutoMergedCells(true);
 ByteArrayOutputStream stream = new ByteArrayOutputStream();
 workbook.save(stream, options);
 byte[] bytes = stream.toByteArray();
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>fileStream</code> - The destination stream to receive the saved workbook data.</dd>
<dd><code>options</code> - The save options that control how the workbook is written. This parameter should be an instance of a supported  <a href="SaveOptionsBase.html" title="class in com.grapecity.documents.excel"><code>SaveOptionsBase</code></a> derived type.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="save(java.io.OutputStream,com.grapecity.documents.excel.SaveFileFormat)">
<h3>save</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">save</span><wbr><span class="parameters">(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/OutputStream.html" title="class or interface in java.io">OutputStream</a>&nbsp;fileStream,
 <a href="SaveFileFormat.html" title="enum class in com.grapecity.documents.excel">SaveFileFormat</a>&nbsp;fileFormat)</span></div>
<div class="block">Saves the workbook to the specified stream in the specified file format. <p>Use this method to write the current workbook content to an  <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/OutputStream.html" title="class or interface in java.io"><code>OutputStream</code></a> when the target format must be specified explicitly.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1:B2").setValue(new Object[][] {
     {"Name", "Value"},
     {"Test", 100}
 });
 try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
     workbook.save(outputStream, SaveFileFormat.Xlsx);
     byte[] bytes = outputStream.toByteArray();
 } catch (Exception e) {
     // Handle exception
 }
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>fileStream</code> - The destination stream to receive the saved workbook data. Must not be <code>null</code>.</dd>
<dd><code>fileFormat</code> - The format used to save the workbook to the stream.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getUsedFonts()">
<h3>getUsedFonts</h3>
<div class="member-signature"><span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util">List</a>&lt;<a href="FontInfo.html" title="class in com.grapecity.documents.excel">FontInfo</a>&gt;</span>&nbsp;<span class="element-name">getUsedFonts</span>()</div>
<div class="block">Gets all font information used in the workbook. <p>This method returns a collection of  <a href="FontInfo.html" title="class in com.grapecity.documents.excel"><code>FontInfo</code></a> objects that describe the fonts currently used by workbook content and styles.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue("Title");
 worksheet.getRange("A1").getFont().setName("Wide Latin");
 worksheet.getRange("B1").setValue("Body");
 worksheet.getRange("B1").getFont().setName("Calibri");
 List&lt;FontInfo&gt; fonts = workbook.getUsedFonts();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>A list of <a href="FontInfo.html" title="class in com.grapecity.documents.excel"><code>FontInfo</code></a> objects that represent the fonts used in the workbook.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="protect()">
<h3>protect</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">protect</span>()</div>
<div class="block">Protects the workbook structure without a password. <p>The default call protects the workbook structure with  <code>structure</code> set to <code>true</code> and leaves workbook window protection disabled because <code>windows</code> is <code>false</code>. This protection restricts workbook structure operations, such as  adding, moving, deleting, hiding, unhiding, or renaming worksheets, in supported  spreadsheet applications. It does not encrypt the workbook, provide content access  control, or prevent changes made through the object model before saving.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue("Quarterly Report");
 worksheet.setVisible(false);
 workbook.protect();
 </code></pre></div>
</section>
</li>
<li>
<section class="detail" id="protect(boolean)">
<h3>protect</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">protect</span><wbr><span class="parameters">(boolean&nbsp;structure)</span></div>
<div class="block">Protects a workbook so that it cannot be modified. <p>If  <code>structure</code> is <code>true</code>, workbook structure is protected to prevent  other users from viewing hidden worksheets, adding, moving, deleting, or hiding  worksheets, and renaming worksheets.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue("Quarterly Report");
 workbook.protect(true);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>structure</code> - <code>true</code> to protect the workbook structure; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="protect(boolean,boolean)">
<h3>protect</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">protect</span><wbr><span class="parameters">(boolean&nbsp;structure,
 boolean&nbsp;windows)</span></div>
<div class="block">Protects the workbook from modification based on the specified structure and window settings. <p>Set  <code>structure</code> to <code>true</code> to prevent users from viewing hidden worksheets, adding, moving, deleting, hiding, or renaming worksheets. Set  <code>windows</code> to <code>true</code> to prevent users from moving, resizing, or closing the workbook window, or hiding and unhiding windows. The window protection option is available only in Excel 2007, Excel 2010,  Excel for Mac 2011, and Excel 2016 for Mac.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue("Quarterly Report");
 workbook.protect(true, true);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>structure</code> - <code>true</code> to protect the workbook structure; otherwise, <code>false</code>.</dd>
<dd><code>windows</code> - <code>true</code> to protect the workbook windows; otherwise, <code>false</code>. This option  is available only in Excel 2007, Excel 2010, Excel for Mac 2011, and Excel 2016 for Mac.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="protect(java.lang.String)">
<h3>protect</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">protect</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;password)</span></div>
<div class="block">Protects the workbook with a password so that it cannot be modified. <p>Use this method to apply workbook protection with a password. Protected workbooks  prevent users from modifying the workbook when it is opened in a supported spreadsheet application.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue("Quarterly Report");
 // Get the password from user input via getPasswordFromSecureSource().
 String password = getPasswordFromSecureSource();
 workbook.protect(password);
 workbook.unprotect(password);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>password</code> - The password used to protect the workbook. If <code>null</code> or empty, the workbook is still protected without a password.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="protect(java.lang.String,boolean)">
<h3>protect</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">protect</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;password,
 boolean&nbsp;structure)</span></div>
<div class="block">Protects the workbook so that it cannot be modified. <p>If  <code>structure</code> is <code>true</code>, workbook structure is protected to prevent  other users from viewing hidden worksheets, adding, moving, deleting, or hiding  worksheets, and renaming worksheets.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1:B2").setValue(new Object[][] {
     {"Name", "Value"},
     {"Test", 100}
 });
 // Get the password from user input via getPasswordFromSecureSource().
 String password = getPasswordFromSecureSource();
 workbook.protect(password, true);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>password</code> - The password used to protect the workbook.</dd>
<dd><code>structure</code> - <code>true</code> to protect the workbook structure; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="protect(java.lang.String,boolean,boolean)">
<h3>protect</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">protect</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;password,
 boolean&nbsp;structure,
 boolean&nbsp;windows)</span></div>
<div class="block">Protects a workbook so that it cannot be modified. <p>Use this overload to protect both workbook structure and workbook windows with a password.  Set  <code>structure</code> to <code>true</code> to prevent users from viewing hidden worksheets, adding, moving, deleting, hiding, or renaming worksheets. Set  <code>windows</code> to <code>true</code> to prevent users from moving, resizing, or closing the workbook window, or hiding and unhiding windows.</p> <p>This protection only restricts workbook structure and window operations in supported  spreadsheet applications. It does not encrypt workbook contents and should not be used  as a confidentiality or access-control mechanism. To protect sensitive data, use  file encryption such as password-protected  <a href="XlsxSaveOptions.html" title="class in com.grapecity.documents.excel"><code>XlsxSaveOptions</code></a> or other access-control measures, and avoid storing unencrypted sensitive data in hidden worksheets.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue("Quarterly Report");
 // Get the password from user input via getPasswordFromSecureSource().
 String password = getPasswordFromSecureSource();
 workbook.protect(password, true, true);
 workbook.unprotect(password);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>password</code> - Password to protect the workbook.</dd>
<dd><code>structure</code> - True to protect the structure of the workbook (To prevent other users from viewing hidden worksheets, adding, moving, deleting, or hiding worksheets, and renaming worksheets).</dd>
<dd><code>windows</code> - True to prevent users from moving, resizing, or closing the workbook window, or hide/unhide windows. This option is available only in Excel 2007, Excel 2010, Excel for Mac 2011, and Excel 2016 for Mac.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="unprotect()">
<h3>unprotect</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">unprotect</span>()</div>
<div class="block">Removes protection from the workbook. <p>Use this method to remove protection that was applied with  <a href="#protect()"><code>protect()</code></a> or another non-password overload of  <code>protect</code>. If the workbook was protected with  a password, use  <a href="#unprotect(java.lang.String)"><code>unprotect(String)</code></a> with the correct password instead.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue("Confidential");
 workbook.protect();
 workbook.unprotect();
 </code></pre></div>
</section>
</li>
<li>
<section class="detail" id="unprotect(java.lang.String)">
<h3>unprotect</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">unprotect</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;password)</span></div>
<div class="block">Removes protection from the workbook. <p>Pass the password that was used with  <a href="#protect(java.lang.String)"><code>protect(String)</code></a> to remove workbook protection. If the workbook was protected without a password, the  <code>password</code> argument is ignored.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue("Confidential");
 // Get the password from user input via getPasswordFromSecureSource().
 String password = getPasswordFromSecureSource();
 workbook.protect(password);
 workbook.unprotect(password);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>password</code> - The password used to protect the workbook. This value is ignored if the workbook was protected without a password.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addDataSource(java.lang.String,java.lang.Object)">
<h3>addDataSource</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">addDataSource</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;name,
 <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>&nbsp;dataSource)</span></div>
<div class="block">Adds a named data source for template processing. <p>Use this method to register an alias that can be referenced by binding fields in a template.  For example, after adding a data source with the alias  <code>title</code>, the template can use   {{title}}} in its binding fields.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue("{{title}}");
 String reportTitle = "Sales Report";
 workbook.addDataSource("title", reportTitle);
 workbook.processTemplate();
 Object value = worksheet.getRange("A1").getValue();
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - The alias name of the data source used by template binding fields.</dd>
<dd><code>dataSource</code> - The data source to register. Common choices include a <a href="template/DataSource/JsonDataSource.html" title="class in com.grapecity.documents.excel.template.DataSource"><code>JsonDataSource</code></a>, a  <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.sql/java/sql/ResultSet.html" title="class or interface in java.sql"><code>ResultSet</code></a>, an  <a href="ITableDataSource.html" title="interface in com.grapecity.documents.excel"><code>ITableDataSource</code></a>, a custom object or object collection, or a scalar value such as a string, number, or date.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="processTemplate()">
<h3>processTemplate</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">processTemplate</span>()</div>
<div class="block">Processes the workbook as a template by evaluating template fields and replacing them  with data from the workbook's data sources. <p>Call this method after adding one or more data sources with  <a href="#addDataSource(java.lang.String,java.lang.Object)"><code>addDataSource(String,Object)</code></a>.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue("{{ds.name}}");
 String json = "[{\"name\":\"jack\",\"age\":12,\"height\":160},{\"name\":\"alice\",\"age\":25,\"height\":165},{\"name\":\"peter\",\"age\":21,\"height\":180}]";
 workbook.addDataSource("ds", new JsonDataSource(json));
 workbook.processTemplate();
 Object value = worksheet.getRange("A1").getValue();
 </code></pre></div>
</section>
</li>
<li>
<section class="detail" id="processTemplate(com.grapecity.documents.excel.CancellationToken)">
<h3>processTemplate</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">processTemplate</span><wbr><span class="parameters">(<a href="CancellationToken.html" title="class in com.grapecity.documents.excel">CancellationToken</a>&nbsp;cancellationToken)</span></div>
<div class="block">Processes the workbook as a template and observes cancellation requests through  the specified cancellation token. <p>Use this method to process template data in the current workbook while allowing  the operation to be canceled through a  <a href="CancellationToken.html" title="class in com.grapecity.documents.excel"><code>CancellationToken</code></a>. If cancellation  occurs, the workbook can remain in a partially processed state.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue("{{ds.name}}");
 String json = "[{\"name\":\"jack\",\"age\":12,\"height\":160},{\"name\":\"alice\",\"age\":25,\"height\":165},{\"name\":\"peter\",\"age\":21,\"height\":180}]";
 workbook.addDataSource("ds", new JsonDataSource(json));
 try (CancellationTokenSource cancellation = new CancellationTokenSource()) {
     workbook.processTemplate(cancellation.getToken());
 } catch (Exception e) {
     // Handle exception
 }
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>cancellationToken</code> - A token used to monitor cancellation requests. Pass <code>null</code> if cancellation is not required.</dd>
<dt>Throws:</dt>
<dd><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/CancellationException.html" title="class or interface in java.util.concurrent">CancellationException</a></code> - if the specified <a href="CancellationToken.html" title="class in com.grapecity.documents.excel"><code>CancellationToken</code></a> is canceled while template processing is in progress.</dd>
<dt>API Note:</dt>
<dd>The caller must decide whether to keep the partially processed workbook or restore the previous state. If restoration is required, serialize the workbook before calling this method and deserialize it after the operation is canceled.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="generateReport()">
<h3>generateReport</h3>
<div class="member-signature"><span class="return-type"><a href="IWorkbook.html" title="interface in com.grapecity.documents.excel">IWorkbook</a></span>&nbsp;<span class="element-name">generateReport</span>()</div>
<div class="block">Processes the template and returns a new report workbook instance. <p>Unlike  <a href="#processTemplate()"><code>processTemplate()</code></a>, this method generates the report in a new  <a href="IWorkbook.html" title="interface in com.grapecity.documents.excel"><code>IWorkbook</code></a> so the current template workbook can be retained for further use.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue("Class: {{className}}");
 workbook.addDataSource("className", "Class 3");
 IWorkbook report = workbook.generateReport();
 Object value = report.getWorksheets().get(0).getRange("A1").getValue();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>A new <a href="IWorkbook.html" title="interface in com.grapecity.documents.excel"><code>IWorkbook</code></a> instance that contains the generated report.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="generateReport(com.grapecity.documents.excel.IWorksheet...)">
<h3>generateReport</h3>
<div class="member-signature"><span class="return-type"><a href="IWorkbook.html" title="interface in com.grapecity.documents.excel">IWorkbook</a></span>&nbsp;<span class="element-name">generateReport</span><wbr><span class="parameters">(<a href="IWorksheet.html" title="interface in com.grapecity.documents.excel">IWorksheet</a>...&nbsp;worksheets)</span></div>
<div class="block">Processes the template and returns a new report workbook that includes only the specified worksheets. <p>Use this method to generate a new  <a href="IWorkbook.html" title="interface in com.grapecity.documents.excel"><code>IWorkbook</code></a> from the current template workbook while limiting report generation to the provided worksheets.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue("{{name}}");
 workbook.addDataSource("name", "Quarterly Report");
 IWorkbook report = workbook.generateReport(worksheet);
 Object value = report.getWorksheets().get(0).getRange("A1").getValue();
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>worksheets</code> - The worksheets to process.</dd>
<dt>Returns:</dt>
<dd>A new <a href="IWorkbook.html" title="interface in com.grapecity.documents.excel"><code>IWorkbook</code></a> object that contains the generated report.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getGraphicsInfo()">
<h3>getGraphicsInfo</h3>
<div class="member-signature"><span class="return-type"><a href="IGraphicsInfo.html" title="interface in com.grapecity.documents.excel">IGraphicsInfo</a></span>&nbsp;<span class="element-name">getGraphicsInfo</span>()</div>
<div class="block">Gets the graphics information used by the workbook. <p>If no graphics information has been assigned, the workbook uses built-in graphics information.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue("12345");
 class CustomGraphicsInfo implements IGraphicsInfo {
     @Override
     public double getDigitWidth(TextFormatInfo textFormat) {
         if ("Calibri".equals(textFormat.getFontFamily())) {
             return 8 * textFormat.getFontSize() / 11;
         }
         return 7 * textFormat.getFontSize() / 11;
     }
 }
 IGraphicsInfo graphicsInfo = new CustomGraphicsInfo();
 workbook.setGraphicsInfo(graphicsInfo);
 IGraphicsInfo currentGraphicsInfo = workbook.getGraphicsInfo();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The graphics information used by the workbook.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setGraphicsInfo(com.grapecity.documents.excel.IGraphicsInfo)">
<h3>setGraphicsInfo</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setGraphicsInfo</span><wbr><span class="parameters">(<a href="IGraphicsInfo.html" title="interface in com.grapecity.documents.excel">IGraphicsInfo</a>&nbsp;value)</span></div>
<div class="block">Sets the graphics information used by the workbook. <p>Use this property to provide custom digit-width measurement logic for workbook  rendering and layout calculations. If  <code>value</code> is <code>null</code>, the workbook  uses built-in graphics information.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue("12345");
 class CustomGraphicsInfo implements IGraphicsInfo {
     @Override
     public double getDigitWidth(TextFormatInfo textFormat) {
         if ("Calibri".equals(textFormat.getFontFamily())) {
             return 8 * textFormat.getFontSize() / 11;
         }
         return 7 * textFormat.getFontSize() / 11;
     }
 }
 IGraphicsInfo graphicsInfo = new CustomGraphicsInfo();
 workbook.setGraphicsInfo(graphicsInfo);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - The graphics information to use for digit-width measurement and related layout calculations. Set to  <code>null</code> to use the built-in graphics information.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getExcelLinkSources()">
<h3>getExcelLinkSources</h3>
<div class="member-signature"><span class="return-type"><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util">List</a>&lt;<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>&gt;</span>&nbsp;<span class="element-name">getExcelLinkSources</span>()</div>
<div class="block">Gets the names of the linked Excel documents in the workbook. <p>Use this method to retrieve the external workbook names referenced by cross-workbook formulas  before calling  <a href="#updateExcelLink(java.lang.String)"><code>updateExcelLink(String)</code></a> or <a href="#updateExcelLink(java.lang.String,com.grapecity.documents.excel.IWorkbook)"><code>updateExcelLink(String,IWorkbook)</code></a> to refresh linked data.</p>
<pre><code data-language="Java">
 worksheet.getRange("B1").setFormula("='[SourceIWorkbook.xlsx]Sheet1'!A1");
 List&lt;String&gt; linkSources = workbook.getExcelLinkSources();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>A list of linked Excel document names.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="updateExcelLink(java.lang.String)">
<h3>updateExcelLink</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">updateExcelLink</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;name)</span></div>
<div class="block">Updates the Excel link with the specified name. <p>Use this method to refresh a linked workbook reference identified by name.  To obtain available link names, use  <a href="#getExcelLinkSources()"><code>getExcelLinkSources()</code></a>.</p>
<pre><code data-language="Java">
 String sourceFileName = "SourceWorkbook.xlsx";
 IWorkbook sourceWorkbook = new Workbook();
 sourceWorkbook.getWorksheets().get(0).getRange("A1").setValue("Updated value");
 sourceWorkbook.save(sourceFileName);
 worksheet.getRange("B1").setFormula("='[" + sourceFileName + "]Sheet1'!A1");
 for (String linkSource : workbook.getExcelLinkSources()) {
     workbook.updateExcelLink(linkSource);
 }
 Object updatedValue = worksheet.getRange("B1").getValue();
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - The name of the Excel link to update. This value should match one of the linked workbook names; <code>null</code> behavior is undefined.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="updateExcelLink(java.lang.String,com.grapecity.documents.excel.IWorkbook)">
<h3>updateExcelLink</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">updateExcelLink</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;name,
 <a href="IWorkbook.html" title="interface in com.grapecity.documents.excel">IWorkbook</a>&nbsp;sourceWorkbook)</span></div>
<div class="block">Updates a specified Excel link by using the content from another workbook. <p>Use this method to refresh the cached data for one linked workbook referenced by  formulas in the current workbook. The  <code>name</code> should match the linked workbook name used in the external reference.</p>
<pre><code data-language="Java">
 worksheet.getRange("B1").setFormula("='[SourceWorkbook.xlsx]Sheet1'!A1");
 IWorkbook sourceWorkbook = new Workbook();
 sourceWorkbook.getWorksheets().get(0).getRange("A1").setValue("Hello");
 workbook.updateExcelLink("SourceWorkbook.xlsx", sourceWorkbook);
 Object updatedValue = worksheet.getRange("B1").getValue();
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - The name of the linked workbook to update.</dd>
<dd><code>sourceWorkbook</code> - The workbook that provides the source data for the specified link. <code>null</code> behavior is undefined.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="updateExcelLinks()">
<h3>updateExcelLinks</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">updateExcelLinks</span>()</div>
<div class="block">Updates all Excel links in the workbook. <p>Use this method to refresh the caches of external workbook links used by  cross-workbook formulas.</p>
<pre><code data-language="Java">
 String sourceFileName = "SourceWorkbook.xlsx";
 IWorkbook sourceWorkbook = new Workbook();
 sourceWorkbook.getWorksheets().get(0).getRange("A1").setValue("Updated value");
 sourceWorkbook.save(sourceFileName);
 worksheet.getRange("B1").setFormula("='[" + sourceFileName + "]Sheet1'!A1");
 List&lt;String&gt; linkSources = workbook.getExcelLinkSources();
 workbook.updateExcelLinks();
 Object updatedValue = worksheet.getRange("B1").getValue();
 </code></pre></div>
</section>
</li>
<li>
<section class="detail" id="toSjsJson()">
<h3>toSjsJson</h3>
<div class="member-signature"><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">toSjsJson</span>()</div>
<div class="block">Generates a single JSON payload that represents the workbook in SpreadJS .sjs format.
 <pre><code data-language="Java">
 worksheet.getRange("A1:B2").setValue(new Object[][] {
     {"Name", "Value"},
     {"Test", 100}
 });
 String sjsJson = workbook.toSjsJson();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>A JSON string that contains the workbook content in SpreadJS .sjs format.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="toSjsJson(com.grapecity.documents.excel.SjsSaveOptions)">
<h3>toSjsJson</h3>
<div class="member-signature"><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">toSjsJson</span><wbr><span class="parameters">(<a href="SjsSaveOptions.html" title="class in com.grapecity.documents.excel">SjsSaveOptions</a>&nbsp;options)</span></div>
<div class="block">Generates a single JSON payload that represents the workbook in SpreadJS .sjs format, using the specified save options.
 <pre><code data-language="Java">
 worksheet.getRange("A1:B2").setValue(new Object[][] {
     {"Name", "Value"},
     {"Test", 100}
 });
 SjsSaveOptions options = new SjsSaveOptions();
 options.setIncludeEmptyRegionCells(false);
 String sjsJson = workbook.toSjsJson(options);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>options</code> - The save options used to generate the SJS JSON content.</dd>
<dt>Returns:</dt>
<dd>A JSON string that contains the workbook content in SpreadJS .sjs format.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="toSjsJson(java.io.OutputStream,com.grapecity.documents.excel.SjsSaveOptions)">
<h3>toSjsJson</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">toSjsJson</span><wbr><span class="parameters">(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/OutputStream.html" title="class or interface in java.io">OutputStream</a>&nbsp;stream,
 <a href="SjsSaveOptions.html" title="class in com.grapecity.documents.excel">SjsSaveOptions</a>&nbsp;options)</span></div>
<div class="block">Integrates all JSON files in the SpreadJS .sjs format into a single string and writes it to the specified stream. <p>Use  <a href="SjsSaveOptions.html" title="class in com.grapecity.documents.excel"><code>SjsSaveOptions</code></a> to control how workbook content is included when generating the SJS JSON output.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1:B2").setValue(new Object[][] {
     {"Name", "Value"},
     {"Test", 100}
 });
 SjsSaveOptions options = new SjsSaveOptions();
 options.setIncludeFormulas(true);
 ByteArrayOutputStream stream = new ByteArrayOutputStream();
 workbook.toSjsJson(stream, options);
 String sjsJson = new String(stream.toByteArray(), java.nio.charset.StandardCharsets.UTF_8);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>stream</code> - The output stream that receives the integrated JSON string.</dd>
<dd><code>options</code> - The save options used when generating the SpreadJS .sjs JSON output.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="toSjsJson(java.io.OutputStream)">
<h3>toSjsJson</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">toSjsJson</span><wbr><span class="parameters">(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/OutputStream.html" title="class or interface in java.io">OutputStream</a>&nbsp;stream)</span></div>
<div class="block">Writes a JSON string that combines all JSON parts of the SpreadJS .sjs content for this workbook to the specified stream. <p>Use this method to export the workbook as a single SJS JSON payload through an  <a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/OutputStream.html" title="class or interface in java.io"><code>OutputStream</code></a>.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1:B2").setValue(new Object[][] {
     {"Name", "Value"},
     {"Test", 100}
 });
 ByteArrayOutputStream stream = new ByteArrayOutputStream();
 workbook.toSjsJson(stream);
 String sjsJson = new String(stream.toByteArray(), java.nio.charset.StandardCharsets.UTF_8);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>stream</code> - The output stream that receives the generated SJS JSON content. Must not be <code>null</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="convertBarcodeToPicture()">
<h3>convertBarcodeToPicture</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">convertBarcodeToPicture</span>()</div>
<div class="block">Converts calculated barcode formulas to pictures and places the pictures at their original positions. <p>The original barcode formulas are cleared after the conversion. The converted pictures use  <a href="drawing/ImageType.html#SVG"><code>ImageType.SVG</code></a>.</p>
<pre><code data-language="Java">
 worksheet.getRange("B2").setValue("Policy:411");
 worksheet.getRange("C2").setFormula("=BC_QRCODE(B2)");
 workbook.calculate();
 workbook.convertBarcodeToPicture();
 int pictureCount = worksheet.getShapes().getCount();
 String fileName = "BarcodeReport.xlsx";
 workbook.save(fileName);
 </code></pre></div>
</section>
</li>
<li>
<section class="detail" id="convertBarcodeToPicture(com.grapecity.documents.excel.drawing.ImageType)">
<h3>convertBarcodeToPicture</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">convertBarcodeToPicture</span><wbr><span class="parameters">(<a href="drawing/ImageType.html" title="enum class in com.grapecity.documents.excel.drawing">ImageType</a>&nbsp;imageType)</span></div>
<div class="block">Converts calculated barcode formulas to pictures. <p>The converted pictures are placed at the original barcode positions, and the  original barcode formulas are cleared after the conversion.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setValue("Policy:411");
 worksheet.getRange("B1").setFormula("=BC_QRCODE(A1)");
 workbook.convertBarcodeToPicture(ImageType.JPG);
 int pictureCount = worksheet.getShapes().getCount();
 String fileName = "BarcodeReportJpg.xlsx";
 workbook.save(fileName);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>imageType</code> - The <a href="drawing/ImageType.html" title="enum class in com.grapecity.documents.excel.drawing"><code>ImageType</code></a> of the converted barcode pictures.</dd>
<dt>Throws:</dt>
<dd><code><a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/UnsupportedOperationException.html" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if <code>imageType</code> is <a href="drawing/ImageType.html#EMF"><code>ImageType.EMF</code></a> or <a href="drawing/ImageType.html#WMF"><code>ImageType.WMF</code></a>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="fromSjsJson(java.lang.String)">
<h3>fromSjsJson</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">fromSjsJson</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;json)</span></div>
<div class="block">Generates a workbook from a JSON string containing .sjs file content.
 <pre><code data-language="Java">
 worksheet.getRange("A1").setValue("Name");
 worksheet.getRange("B1").setValue("Value");
 String sjsJson = workbook.toSjsJson();
 IWorkbook importedWorkbook = new Workbook();
 importedWorkbook.fromSjsJson(sjsJson);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>json</code> - The JSON string containing .sjs file content.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="fromSjsJson(java.lang.String,com.grapecity.documents.excel.SjsOpenOptions)">
<h3>fromSjsJson</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">fromSjsJson</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;json,
 <a href="SjsOpenOptions.html" title="class in com.grapecity.documents.excel">SjsOpenOptions</a>&nbsp;openOptions)</span></div>
<div class="block">Generates a workbook from a JSON string containing SpreadJS .sjs file content, using the specified  <a href="SjsOpenOptions.html" title="class in com.grapecity.documents.excel"><code>SjsOpenOptions</code></a>.
 <pre><code data-language="Java">
 worksheet.getRange("A1:B2").setValue(new Object[][] {
     {"Name", "Value"},
     {"Test", 100}
 });
 String json = workbook.toSjsJson();
 SjsOpenOptions openOptions = new SjsOpenOptions();
 IWorkbook importedWorkbook = new Workbook();
 importedWorkbook.fromSjsJson(json, openOptions);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>json</code> - The JSON string that contains workbook data in SpreadJS .sjs format.</dd>
<dd><code>openOptions</code> - The options used to open the SpreadJS .sjs content.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="fromSjsJson(java.io.InputStream,com.grapecity.documents.excel.SjsOpenOptions)">
<h3>fromSjsJson</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">fromSjsJson</span><wbr><span class="parameters">(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/InputStream.html" title="class or interface in java.io">InputStream</a>&nbsp;stream,
 <a href="SjsOpenOptions.html" title="class in com.grapecity.documents.excel">SjsOpenOptions</a>&nbsp;openOptions)</span></div>
<div class="block">Generates a workbook from a JSON stream containing .sjs file content.
 <pre><code data-language="Java">
 worksheet.getRange("A1:B2").setValue(new Object[][] {
     {"Name", "Value"},
     {"Test", 100}
 });
 String json = workbook.toSjsJson();
 SjsOpenOptions openOptions = new SjsOpenOptions();
 IWorkbook importedWorkbook = new Workbook();
 try (InputStream stream = new ByteArrayInputStream(json.getBytes(java.nio.charset.StandardCharsets.UTF_8))) {
     importedWorkbook.fromSjsJson(stream, openOptions);
 }
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>stream</code> - The JSON stream.</dd>
<dd><code>openOptions</code> - The open options for opening SpreadJS .sjs file.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="fromSjsJson(java.io.InputStream)">
<h3>fromSjsJson</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">fromSjsJson</span><wbr><span class="parameters">(<a class="external-link" href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/InputStream.html" title="class or interface in java.io">InputStream</a>&nbsp;stream)</span></div>
<div class="block">Loads a workbook from a JSON stream that contains SpreadJS .sjs file content.
 <pre><code data-language="Java">
 worksheet.getRange("A1").setValue("Name");
 ByteArrayOutputStream stream = new ByteArrayOutputStream();
 workbook.toSjsJson(stream);
 InputStream inputStream = new ByteArrayInputStream(stream.toByteArray());
 IWorkbook importedWorkbook = new Workbook();
 importedWorkbook.fromSjsJson(inputStream);
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>stream</code> - The JSON stream that contains SpreadJS .sjs file content. Must not be <code>null</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="waitForCalculationToFinish()">
<h3>waitForCalculationToFinish</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">waitForCalculationToFinish</span>()</div>
<div class="block">Waits for all calculations in the workbook to finish. <p>This method blocks the current thread until all pending calculations,  including asynchronous calculations, have completed. Call this method before  performing operations that depend on calculated results.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1").setFormula("=IMAGE(\"https://example.com/logo.jpg\")");
 workbook.calculate();
 workbook.waitForCalculationToFinish();
 CellPicture picture = worksheet.getRange("A1").getCellPicture();
 </code></pre></div>
</section>
</li>
<li>
<section class="detail" id="getShowPivotTableFieldList()">
<h3>getShowPivotTableFieldList</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">getShowPivotTableFieldList</span>()</div>
<div class="block">Gets a value indicating whether the PivotTable field list can be shown. <p>Use this property to determine whether users can display the PivotTable field list for PivotTables in the workbook.  The default value is  <code>true</code>.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1:B4").setValue(new Object[][] {
     {"Product", "Sales"},
     {"Laptop", 1200},
     {"Tablet", 900},
     {"Laptop", 700}
 });
 IPivotCache pivotCache = workbook.getPivotCaches().create(worksheet.getRange("A1:B4"));
 IPivotTable pivotTable = worksheet.getPivotTables().add(pivotCache, worksheet.getRange("D1"), "SalesPivot");
 pivotTable.getPivotFields().get("Product").setOrientation(PivotFieldOrientation.RowField);
 pivotTable.addDataField(pivotTable.getPivotFields().get("Sales"), "Sum of Sales", ConsolidationFunction.Sum);
 workbook.setShowPivotTableFieldList(false);
 boolean canShowFieldList = workbook.getShowPivotTableFieldList();
 </code></pre></div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if the PivotTable field list can be shown; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setShowPivotTableFieldList(boolean)">
<h3>setShowPivotTableFieldList</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setShowPivotTableFieldList</span><wbr><span class="parameters">(boolean&nbsp;value)</span></div>
<div class="block">Sets a value indicating whether the PivotTable field list can be shown. <p>Use this property to set whether users can display the PivotTable field list for PivotTables in the workbook.</p>
<pre><code data-language="Java">
 worksheet.getRange("A1:B4").setValue(new Object[][] {
     {"Product", "Sales"},
     {"Laptop", 1200},
     {"Tablet", 900},
     {"Laptop", 700}
 });
 IPivotCache pivotCache = workbook.getPivotCaches().create(worksheet.getRange("A1:B4"));
 IPivotTable pivotTable = worksheet.getPivotTables().add(pivotCache, worksheet.getRange("D1"), "SalesPivot");
 pivotTable.getPivotFields().get("Product").setOrientation(PivotFieldOrientation.RowField);
 pivotTable.addDataField(pivotTable.getPivotFields().get("Sales"), "Sum of Sales", ConsolidationFunction.Sum);
 workbook.setShowPivotTableFieldList(false);
 boolean canShowFieldList = workbook.getShowPivotTableFieldList();
 </code></pre></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>value</code> - <code>true</code> if the PivotTable field list can be shown; otherwise, <code>false</code>.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="clone()">
<h3>clone</h3>
<div class="member-signature"><span class="return-type"><a href="IWorkbook.html" title="interface in com.grapecity.documents.excel">IWorkbook</a></span>&nbsp;<span class="element-name">clone</span>()</div>
<div class="block">Clones the current workbook and returns a new workbook instance. <p>The cloned workbook is an exact copy of the current workbook at the time this method is called.  Changes made to the cloned workbook do not affect the original workbook.</p> <p>For user-defined objects stored in workbook content, the cloning process uses the object's clone  implementation when available. Otherwise, those objects are copied by reference. IWorkbook and worksheet  events are not cloned and must be registered again on the cloned workbook if needed.</p></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>A new <a href="IWorkbook.html" title="interface in com.grapecity.documents.excel"><code>IWorkbook</code></a> instance that is an exact copy of the current workbook.</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>