<!DOCTYPE html>
<html lang="en">
<head>
<base href='https://jspreadsheet.com/templates/default/'>
    <meta name='viewport' id="viewport" content='width=device-width,initial-scale=1' />
    <meta name='format-detection' content = "telephone=no" />
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" >

    <meta name="name" content="Jspreadsheet">
    <meta name="image" content="https://jspreadsheet.com/logo.svg">
    <meta name="url" content="https://jspreadsheet.com/">
    <meta property="og:type" content="website">
    <meta property="og:site_name" content="Jspreadsheet">
    <meta property="og:url" content="https://jspreadsheet.com/">
    <meta property="og:locale" content="en_GB">
    <meta property="og:image" content="https://jspreadsheet.com/logo.svg">

    <link rel="preconnect" href="https://challenges.cloudflare.com">
    <link rel="help" type="text/plain" href="/llm.txt" title="LLM context file">

    <script type="application/ld+json">
        {
            "@context": "https://schema.org",
            "@type": "WebSite",
            "name": "Jspreadsheet",
            "url": "https://jspreadsheet.com/",
            "potentialAction": {
                "@type": "SearchAction",
                "target": "https://jspreadsheet.com/search?q={search}",
                "query-input": "required name=search"
            }
        }
    </script>
    <script type="application/ld+json">
        {
            "@context": "https://schema.org",
            "@type": "Organization",
            "name": "Jspreadsheet",
            "legalName": "Jspreadsheet Ltd",
            "url": "https://jspreadsheet.com/",
            "logo": {
                "@type": "ImageObject",
                "url": "https://jspreadsheet.com/logo.svg",
                "width": 512,
                "height": 512
            },
            "description": "JavaScript spreadsheet component with Excel-like controls for web applications. Compatible with React, Angular, and Vue.",
            "foundingDate": "2013",
            "sameAs": [
                "https://www.facebook.com/jspreadsheet",
                "https://github.com/jspreadsheet",
                "https://www.npmjs.com/package/jspreadsheet",
                "https://www.linkedin.com/company/jspreadsheet"
            ],
            "contactPoint": {
                "@type": "ContactPoint",
                "contactType": "customer support",
                "url": "https://jspreadsheet.com/contact",
                "email": "contact@jspreadsheet.com"
            }
        }
    </script>
    <script src="https://www.google.com/recaptcha/enterprise.js?render=6Lc_kZYsAAAAALoX1RpF4acmAfegA0Q7ii4KGquN" async defer></script>
</head>
<body>

<style>
    /** style **/
    .dark-mode,:root{--color-brand:#D92B04;--color-brand-50:#F7DDD8;--color-brand-200:#F0AA9B;--color-brand-400:#E88068;--color-brand-600:#E15536;--color-badge:#3164CB;--color-link:#0D6E00;--color-link-200:#D4F1D0;--gray-300:#A1A1AA}b,body,h1,h2,h3,h4,h5{color:var(--color-black)}body,footer ul{padding:0;margin:0}.logo,.row{display:flex}.container,.form .jdropdown,.form-group input,.form-group select,.form-group textarea,.line,.w100{width:100%}.carousel-content,.nowrap{white-space:nowrap}.center,.github-edition,.products::after,table.pricing td:nth-child(n+2),table.pricing th:nth-child(n+2){text-align:center}.box.shadow,.products .jpicker-content{box-shadow:0 0 20px 0 var(--gray-100)}.box,.container,.form-group,.md pre>code{box-sizing:border-box}.button.selected,.button:hover,.md>div>table thead th{background-color:var(--gray-100)}.md .container-btn-code,.md pre,.md pre>code{overflow-wrap:anywhere;white-space:break-spaces}:root{--main-color:var(--color-brand);--main-color-light:var(--gray-100);--gray-50:#F4F4F5;--gray-100:#ebebeb;--gray-200:#D4D4D8;--gray-500:#71717A;--gray-700:#3C3C41;--gray-900:#27272A;--color-black:black}.dark-mode{--gray-50:#27272A;--gray-100:#3C3C41;--gray-200:#71717A;--gray-500:#D4D4D8;--gray-700:#ebebeb;--gray-900:#F4F4F5;--color-black:white}body{font-family:Inter,sans-serif;font-size:16px;line-height:1.6}a{color:var(--color-link);text-decoration:none}h1,h2,h3,h4,h5{line-height:1.3;margin:16px 0;font-weight:600}.home h1.hero{font-size:3em;font-weight:700}.home h1{font-size:2.625em;margin-top:80px}.home h2{font-size:2.25em;margin-top:20px;margin-bottom:0}.home h3,.home h4,.home h5{margin-bottom:0!important;margin-top:0!important}.home h3{font-size:1.5em}.home h4{font-size:1.125em}.home h5,footer h5{font-size:1em}footer{margin-top:40px;font-size:.8em}footer ul{list-style:none}footer li{margin:10px 0}footer a{color:var(--gray-500)}blockquote{background-color:var(--color-brand-50);border-left:4px solid var(--color-brand);padding:20px 50px 20px 25px;margin:30px 0 40px}blockquote.green{background-color:var(--color-link-200);border-left:8px solid #5bbe56}blockquote.white{background-color:#fff;border-left:8px solid #ccc}blockquote.pro{background-color:var(--gray-50);border-left:4px solid var(--color-brand)}blockquote h2,blockquote h3{margin:15px 0!important}.container{max-width:1400px;margin:0 auto}.row{flex-wrap:wrap;flex-direction:row;justify-content:space-between;align-items:center}.row.gap{gap:32px}.row.gap.big{gap:128px}.row.gap.small{gap:16px}.row.container{flex-wrap:nowrap}.row.right{justify-content:right}.row.left{justify-content:left}.box.center,.row.center{justify-content:center}.row.start{align-items:flex-start}.row.end{align-items:flex-end}.row.stretch{align-items:stretch}footer .row{align-items:unset}.column .start{justify-items:start}.column.space-between{display:flex;flex-direction:column;justify-content:space-between}.logo img{display:block}.button{color:var(--gray-900);padding:12px 16px;display:inline-block;border-radius:8px;background-color:transparent;border:0;cursor:pointer;transition:background-color .2s;font-size:.875em}.button.big,.lm-primary.big{padding:14px 24px;border-radius:10px;font-size:1em}.button.selected{color:var(--gray-900)}.button.primary,.lm-primary{background-color:var(--gray-900)!important;color:var(--gray-50)!important}.button.primary:hover,.lm-primary:hover{background-color:var(--gray-700)!important}.button.disabled{color:var(--gray-300)!important;background:var(--gray-100)!important;cursor:not-allowed;pointer-events:none}.button.disabled:hover{background:0 0;box-shadow:none}.button.secondary,.lm-secondary{border:1px solid var(--gray-200)!important}.button.secondary:hover,.lm-secondary:hover{background-color:var(--gray-100)!important}div.example>input{padding:6px 12px;border-radius:2px;cursor:pointer;font-size:.875em;border:1px solid var(--gray-500)}div.example>input[type=button],div.example>p>input[type=button]{padding:8px 12px;display:inline-block;border-radius:2px;background-color:var(--gray-500)!important;color:var(--gray-50)!important;border:0;cursor:pointer;transition:background-color .2s;font-size:.875em}div.example>p>select,div.example>select{padding:6px;display:inline-block;border-radius:2px;cursor:pointer;font-size:.875em}.button-group{border:1px solid var(--gray-200);border-radius:10px;display:inline-flex;flex-wrap:nowrap;padding:8px 4px}.button-group button a{color:var(--gray-300);margin:0 4px}.form .jdropdown-default .jdropdown-header{border:1px solid var(--gray-200);padding:12px 16px}.form .input,.form .jdropdown-header,.form button,.form input,.form select,.form textarea{border:1px solid var(--gray-200);box-sizing:border-box;background-color:transparent;line-height:initial;padding:12px 16px;border-radius:8px;font-size:.875em;font-family:inherit}.table.pricing td,.top.scrolled{border-bottom:1px solid var(--gray-100)}.jmenu>div,.top{background-color:#fff}.form-group{width:100%;padding-bottom:16px}.form-group input[type=checkbox]{width:15px;margin-right:5px}.form-group label{display:block;margin-bottom:8px;font-weight:600}.row input[type=checkbox]+label{cursor:pointer}.top{font-size:.9em;padding:12px 20px;position:sticky!important;top:0;z-index:7}.indexing a.selected,.panel{background-color:var(--gray-50)}.space160,.space240,.space40,.space80{position:relative}.top nav ul{display:flex;align-items:center;list-style:none;padding:0;margin:0}.panel{margin:0;padding:64px;border-radius:30px}.panel.small{padding:32px}.caption{font-size:.75em!important;font-weight:500!important;color:var(--gray-900)!important}.section{margin:80px 0}.breadcrumb a,.link{color:var(--color-link);font-weight:600}.space240{height:240px}.space160{height:160px}.space80{height:80px}.space40{height:40px}.line{margin:24px 0;border-bottom:1px solid var(--gray-200)}.breadcrumb{padding:15px 0 0;font-size:.875em;line-height:24px;display:flex;align-items:center;gap:8px}.breadcrumb i{font-size:14px;color:var(--gray-500)}.box p,.md>div>table{font-size:.875em}.breadcrumb strong{font-weight:400}.box{display:grid;grid-gap:32px;justify-content:left;padding:32px;border:1px solid var(--gray-100);border-radius:20px;background:#fff}.box h2,.panel.small h2{font-size:1.5rem;font-weight:600;margin:0}.box.nogap{grid-gap:0}.box.gap.small{grid-gap:16px}.box.stretch{grid-template-columns:repeat(auto-fit,100%)}.box[data-number='2']{grid-template-columns:repeat(auto-fit,minmax(250px,calc(50% - 15px)))}.box[data-number='3']{grid-template-columns:repeat(auto-fit,minmax(250px,calc(33.333% - 20px)))}.box[data-number='4']{grid-template-columns:repeat(auto-fit,minmax(250px,calc(25% - 22.5px)))}.row[data-number='3']{justify-content:flex-start}.row[data-number='3']>.column{width:calc(33.333% - 22px);flex:none}.row.stretch .column .box{height:100%}.row.stretch .column .box>*:last-child{margin-top:auto}.box>a img{height:48px;width:auto}.f1{flex:1}.f2{flex:2}.f3{flex:3}.f4{flex:4}.f5{flex:5}.f6{flex:6}.f7{flex:7}.f8{flex:8}.f9{flex:9}.f10{flex:10}.w5{width:5%}.w10{width:10%}.w15,.w20{width:15%}.w25{width:25%}.w30{width:30%}.w33{width:33%}.w40{width:40%}.w50{width:50%}.w60{width:60%}.w66{width:66%}.w70{width:70%}.w80{width:80%}.p0{padding:0}.p2{padding:2px}.p4{padding:4px}.md>div>table td,.p6{padding:6px}.p8{padding:8px}.p10{padding:10px}.p15{padding:15px}.p20{padding:20px}.p25{padding:25px}.p30{padding:30px}.p40{padding:40px}.m0{margin:0!important}.carousel-container{position:relative;height:100px;overflow:hidden}.carousel-container::before{z-index:1;content:"";position:absolute;left:0;width:300px;height:100%;pointer-events:none;background:linear-gradient(to right,#fff,rgba(255,255,255,0))}.carousel-container::after{content:"";position:absolute;right:0;width:300px;height:100%;pointer-events:none;background:linear-gradient(to right,rgba(255,255,255,0),#fff)}.carousel-content{position:absolute;display:flex;justify-content:flex-start;align-items:center;animation:60s linear infinite scrollAnimation}.carousel-content img{margin:0 40px;width:auto;height:100%}@keyframes scrollAnimation{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}.toggle{margin:0 80px}.toggle h3{margin-top:40px!important}.toggle>div{padding:20px 30px 20px 0;position:relative;border-bottom:2px solid var(--gray-100);cursor:pointer;user-select:none}.toggle>div::after{position:absolute;right:8px;top:calc(50% - 16px);content:"\e5cf";font-family:'Material Icons';font-size:24px}.toggle>div :nth-child(2){font-size:1.2em;display:none;width:calc(100% - 50px);margin:20px 0}.toggle>div.toggle-opened::after{content:"\e5ce"}.toggle>div.toggle-opened :nth-child(2){display:block!important}.github-edition{display:inline-flex;align-items:center;border-radius:6px;font-size:.8em;margin:100px 0 50px;padding:5px 20px;position:relative}#index,.indexing{position:sticky!important}.github-edition:before{content:'';width:20px;height:20px;background:url('data:image/svg+xml,<svg height="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="20"><path fill="rgb(149, 157, 165)" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path></svg>')}.github-edition a{padding:5px;color:#707070}.github{line-height:1em;margin-left:40px;margin-right:40px}.ace_editor{height:100%;width:100%;font-size:13px;font-family:monospace!important;line-height:1.6!important;background:#1a73e8}.ace-github-dark .ace_gutter{background:inherit!important}#index{top:80px!important;align-self:flex-start;max-height:calc(100vh - 100px);overflow-y:auto}#index:empty,.jmenu:empty{display:none}.indexing{top:90px!important;font-size:.75em!important}.indexing a.selected{border-left-color:var(--color-brand)!important;font-weight:400!important}@media (max-width:1200px){#index{display:none}.big-screen-only{display:none!important}.jmenu-icon{display:block!important}}@media (min-width:1201px){.small-screen-only{display:none!important}}@media (max-width:800px){.space10,.space160,.space40,.space80{position:relative}.carousel-container::after,.carousel-container::before{width:30px}.column{min-width:fit-content}.top{padding:10px}.w100,.w50,.w70,.w80{width:unset}.home h1{font-size:2em;margin-top:20px}.home h1.hero{font-size:2.4em;margin-top:20px}.home h2{font-size:1.6em}.home h3{font-size:1.2em}.home h4,.home h5{font-size:1em}.panel{padding:40px}.space240{height:120px}.space160{height:80px}.space80{height:40px}.space40{height:20px}.space10{height:10px}.row.gap{gap:16px}.row.gap.big{gap:64px}.row.gap.small{gap:8px}.logo img{height:28px}.breadcrumb{padding:0}.toggle{margin:0}footer>.row{display:grid;grid-template-columns:1fr 1fr;padding:20px}.lm-page{padding:80px 16px 0!important}.lm-page>table{display:block;overflow-x:auto}.row.reverse-mobile{flex-direction:column-reverse}.carousel-container{zoom:0.5}}.md img.left,.md img.right{width:100%;max-width:320px;margin:40px}table .icon,table .icon-no{font-family:'Material Icons';font-size:1.5em;font-style:normal}.products{display:unset;min-height:auto!important}.products::after{content:"keyboard_arrow_down";font-family:'Material Icons';margin-left:3px;width:24px}.products .jpicker-content{width:auto;padding:32px;max-height:none;margin-top:30px!important;margin-left:0;border:1px solid var(--gray-100);border-radius:10px;cursor:pointer;pointer-events:all;position:absolute;left:0;top:12px}.info-label,.jtag{padding:2px 8px;text-transform:uppercase;border-radius:4px;display:inline-block;color:#fff}.products .jpicker-focus>.jpicker-content{display:grid!important;grid-template-columns:repeat(2,1fr);column-gap:16px}.products .jpicker-content>div:hover{background-color:var(--gray-50)!important;border-radius:10px}.products .jpicker-content>div{padding:8px!important}.products .jpicker-item>a{display:flex;justify-content:space-between;align-items:center;color:#000;gap:16px}.md a.arrow,table .icon{color:var(--color-link)}.products .jpicker-item>a b.mit{background-color:#e8effd;border-radius:24px;padding:4px 8px;color:#3164cb!important}.products .jpicker-item>a p{margin:4px 0}.jtag{background-color:red;font-size:9px;position:relative}.info-label.deprecated,.jtag.black{background-color:var(--color-black)}.jtag.purple{background-color:#410d75}.info-label{font-size:8px;line-height:16px;margin:6px;font-style:normal;word-break:initial}.info-label.new{background-color:green}.info-label.new:after{content:''}.info-label.removed{background-color:red}.info-label.updated{background-color:orange}.jss_container{font-size:14px}.frameworks img{width:40px;margin:10px}.frameworks-options{list-style:none;display:flex;padding:20px 5px;margin:20px 0 0}.frameworks-options img{width:auto;height:24px;margin-left:12px;display:inline-block;cursor:pointer}.md ol,.md pre,.md ul{margin:0}.frameworks-options li:first-child>img{margin-left:0!important}.frameworks-options li{display:flex;list-style:none;padding:0}.example,.indexing a,.md pre>code{display:inline-block}.framework-logos{margin:0 auto;max-width:400px}.framework-logos img{width:24px}.example-container{margin-bottom:40px}.example{line-height:initial}.github-edition{margin-top:40px;margin-bottom:120px}.md a.arrow.back::before,.md a.arrow::after{font-family:"Material Icons";font-size:28px;vertical-align:middle}.md a.arrow::after{content:"chevron_right"}.md a.arrow.back::after{content:none}.md a.arrow.back::before{content:"chevron_left"}.md .box.nogap p{margin:5px 0}.md img.right{float:right}.md img.left{float:left}.md img.icon{width:60px;float:left;margin:-10px 10px 0 0}.md img.cover{width:100%;height:auto;padding:0}.md .heading-permalink{visibility:collapse}.md pre>code{padding:2em;margin:0 0 20px;border-radius:10px;background-color:#2e3440;color:#fff;position:relative}.md>div>table,.md>div>table td{border:1px solid var(--gray-200)}.md>div>table{border-spacing:0;border-collapse:collapse;width:100%;margin:30px 0 50px;text-align:left;empty-cells:show}.md>div>table thead th{padding:16px}.md h2,.md h3,.md h4,.md h5{margin-bottom:10px}.md .container-btn-code{display:flex;justify-content:end;z-index:1;position:absolute;padding:10px;margin:15px;max-width:790px;min-width:790px;width:100%}.md .container-btn-code-demo{display:flex;padding:0;margin:0 0 10px}.md h2{margin-top:40px}.md h3{margin-top:30px}.md h4{margin-top:20px}.md h5{margin-top:15px}table.pricing tbody tr,table.pricing thead tr{display:table;width:100%;table-layout:fixed}.table.pricing td{padding:16px;color:var(--color-black)!important}.jmenu *{font-family:Inter,sans-serif!important;color:var(--gray-900)!important}.jmenu nav h2{border-radius:8px!important;letter-spacing:0!important}.jmenu nav h2.folder.selected{border-radius:8px;background:var(--gray-50)}.jmenu a,.jmenu nav h3{font-size:14px!important}.jmenu{font-size:.9em}.jmenu>div{width:260px}.jmenu:not(:empty){min-width:260px}.jmenu-icon{margin-right:10px}@media (min-width:960px){.jmenu>div{position:fixed;top:0;margin-top:70px;height:calc(100vh - 70px);overflow-y:auto;padding:20px;box-sizing:border-box;scrollbar-width:thin;scrollbar-color:transparent transparent}}.indexing a{padding:4px;width:100%}.indexing li{margin:2px!important;padding:0!important}.strike{text-decoration:line-through}.alert{color:var(--color-brand)}lm-pricing:not([data-period]) .period-monthly,lm-pricing:not([data-period]) .period-perpetual{display:none}lm-pricing[data-period] .period-monthly,lm-pricing[data-period] .period-annual,lm-pricing[data-period] .period-perpetual{display:none}lm-pricing[data-period="monthly"] .period-monthly,lm-pricing[data-period="annual"] .period-annual,lm-pricing[data-period="perpetual"] .period-perpetual{display:inline}.top nav ul li{position:relative}.resources{cursor:pointer;user-select:none}.resources::after{content:"keyboard_arrow_down";font-family:'Material Icons';font-size:18px;margin-left:3px;vertical-align:middle;transition:transform .2s}.resources.open::after{transform:rotate(180deg)}.resources-panel{position:absolute;top:calc(100% + 8px);left:0;width:560px;background:#fff;border:1px solid var(--gray-100);border-radius:10px;box-shadow:0 0 20px 0 var(--gray-100);z-index:10;overflow:hidden}.resources-tabs{display:flex;border-bottom:1px solid var(--gray-100);background:var(--gray-50)}.resources-tabs button{flex:1;padding:14px 12px;background:none;border:0;border-bottom:2px solid transparent;cursor:pointer;font-family:inherit;font-size:.875em;color:var(--gray-500);font-weight:500;transition:color .15s,border-color .15s}.resources-tabs button:hover{color:var(--gray-900)}.resources-tabs button.active{color:var(--gray-900);border-bottom-color:var(--color-brand);background:#fff}.resources-pane{padding:8px}.resources-item{display:flex;align-items:center;gap:16px;padding:10px;border-radius:10px;color:#000;text-decoration:none}.resources-item:hover{background-color:var(--gray-50)}.resources-item img,.resources-item .material-icons{width:50px;height:50px;background-color:var(--gray-50);border-radius:8px;object-fit:contain;padding:8px;box-sizing:border-box;flex-shrink:0;display:flex;align-items:center;justify-content:center}.resources-item .material-icons{font-size:24px;color:var(--gray-700)}.resources-item b{font-size:16px;color:var(--gray-900)}.resources-item p{margin:4px 0;font-size:14px;color:var(--gray-500)}.resources-item b.mit{background-color:#e8effd;border-radius:24px;padding:4px 8px;color:#3164cb!important;font-size:12px;line-height:1}
    /** custom **/
    lm-install-ai{display:block}.install-ai-panel{max-height:0;overflow:hidden;opacity:0;transition:max-height .5s ease,opacity .3s ease,padding .5s ease;padding-top:0}.install-ai-panel.open{opacity:1;padding-top:24px}lm-install-ai .ai-card{background:#f8f5f1;border:1px solid #e8e2da;border-radius:12px;padding:28px 32px;text-align:left;position:relative;overflow:hidden}lm-install-ai .ai-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#ef4444,#f97316)}lm-install-ai .ai-card-title{font-weight:700;font-size:16px;margin:0 0 8px 0;color:#1a1a1a}lm-install-ai .ai-card-desc{font-size:14px;color:#6b6b6b;margin:0 0 20px 0;line-height:1.5}lm-install-ai .ai-card-cmd{background:#fff;border:1px solid #e0dbd4;border-radius:8px;padding:14px 16px;font-family:'SF Mono','Fira Code','Consolas',monospace;font-size:14px;display:flex;align-items:center;gap:12px}lm-install-ai .ai-card-cmd .prompt-chevron{color:#c4bfb8;font-size:13px;user-select:none}lm-install-ai .ai-card-cmd code{flex:1;user-select:all;font-weight:500;color:#1a1a1a}lm-install-ai .ai-card-cmd .copy-btn{background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;color:#999;transition:color .2s,background .2s;display:flex;align-items:center}lm-install-ai .ai-card-cmd .copy-btn:hover{color:#333;background:#f0ebe5}@keyframes npx-color-shift{0%,100%{color:#1a1a1a}33%{color:#ef4444}66%{color:#f97316}}.install-ai-panel.open lm-install-ai .ai-card-cmd code{animation:npx-color-shift 4s ease-in-out infinite}lm-install-ai .ai-card-footer{text-align:center;margin-top:16px}lm-install-ai .ai-card-footer a{font-size:13px;color:var(--color-link);text-decoration:none;font-weight:600;transition:color .2s}lm-install-ai .ai-card-footer a:hover{text-decoration:underline}
    /** index **/
    .indexing{border-left:1px solid #eee;font-size:.9em;list-style:none;padding:15px;position:sticky;top:90px;min-width:160px}.indexing li{padding:4px}.indexing a{color:#000;border-left:2px solid transparent;padding-left:10px}.indexing a.selected{font-weight:700;border-left-color:var(--main-color)}.indexing ul{list-style:none;padding:0;margin:0 0 15px 15px}.indexing:empty{display:none}@media (max-width:1200px){.indexing{display:none}}
    /** router **/
    .lm-pages{flex:1;display:flex;flex-wrap:nowrap;align-items:flex-start;height:100%}.lm-page{height:100%;box-sizing:border-box;padding:0 20px;max-width:100vw;flex:1}@media (max-width:800px){.lm-pages{height:100%;width:100%;position:fixed;top:0;left:0}.lm-page{padding-top:calc(44px + var(--lm-safe-area-top));padding-bottom:calc(44px + var(--lm-safe-area-bottom));height:100%;min-width:100%;box-sizing:border-box;overflow-y:auto;will-change:scroll-position;-webkit-overflow-scrolling:touch}}.lm-slide-left-in{animation:.4s forwards lm-slide-left-in}.lm-slide-left-out{animation:.4s forwards lm-slide-left-out}.lm-slide-left-in::-webkit-scrollbar{display:none}.lm-slide-left-out::-webkit-scrollbar{display:none}.lm-loading::before{content:'';position:fixed;top:0;left:0;right:0;height:3px;z-index:9999;animation:2s linear infinite lm-loading;background:#e0e0e0 repeating-linear-gradient(to right,var(--lm-main-color-deep,#66b244),var(--lm-main-color-deep,#66b244) 50%,#e0e0e0 50%,#e0e0e0);background-size:200% 100%}@media (min-width:800px){.lm-slide-left-in,.lm-slide-left-out{position:relative}}@keyframes lm-slide-left-in{0%{left:-100%}100%{left:0}}@-webkit-keyframes lm-slide-left-in{0%{left:-100%}100%{left:0}}@keyframes lm-slide-left-out{0%{left:0}100%{left:-100%}}@-webkit-keyframes lm-slide-left-out{0%{left:0}100%{left:-100%}}@keyframes lm-loading{from{background-position:100% 0}to{background-position:0 0}}
    /** menu **/
    .jmenu li.selected:before,.jmenu ul:before{width:1px;content:"";inset-inline-start:0;position:absolute;top:0;bottom:0}.jmenu .folder.selected+*,.jmenu a{display:block}.jmenu .close,.jmenu .folder,.jmenu nav h2,.jmenu-icon,.jmenu:after{cursor:pointer}.jmenu{max-width:320px}.jmenu *{font-family:"Open Sans",sans-serif}.jmenu:after{content:'';background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");position:absolute;top:0;right:0;margin:20px;font-size:24px;width:24px;height:24px;text-shadow:0 0 5px #fff}.jmenu:not(:empty){min-width:280px}.jmenu .folder+*,.jmenu-logo,.jmenu:empty{display:none}.jmenu .close{position:absolute;top:20px;right:20px;display:none}.jmenu .folder,.jmenu li,.jmenu ul{position:relative}.jmenu nav{margin-bottom:2px}.jmenu nav>div{padding:10px}.jmenu nav h2{display:flex;align-items:center;font-weight:700;font-size:1em;padding:10px 15px;line-height:24px;border-radius:4px;margin:0;letter-spacing:1.1px}.jmenu nav h2.selected,.jmenu nav h2:hover{background-color:#f3f3f3}.jmenu nav h2[data-icon]:before{content:attr(data-icon);width:24px;height:24px;font-size:24px;line-height:24px;font-family:'Material icons';margin-right:6px;font-weight:400}.jmenu nav h3{font-size:1em;font-weight:400;color:#757575;padding:0;margin:0 0 10px}.jmenu .folder::after{position:absolute;top:calc(50% - 9px);right:5px;width:18px;height:18px;content:'';background-repeat:no-repeat;background-image:url("data:image/svg+xml,%0A%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black' width='18px' height='18px'%3E%3Cpath d='M10 17l5-5-5-5v10z'/%3E%3Cpath d='M0 24V0h24v24H0z' fill='none'/%3E%3C/svg%3E");background-position:center center;transition:transform .25s ease-in-out}.jmenu .folder.selected::after{transform:rotate(90deg)}.jmenu ul{white-space:nowrap;margin:5px 0 0 20px;padding:0;list-style:none}.jmenu ul:before{background-color:#ddd}.jmenu nav>div>ul{margin:5px 0 30px 5px}.jmenu li:last-child{margin-bottom:10px}.jmenu li.selected{background-color:var(--main-color-light)}.jmenu li.selected:before{background-color:var(--main-color)}.jmenu a{color:#000;text-decoration:none;padding:4px 15px}.jmenu a:hover{background-color:#f3f3f3;text-decoration:underline}@media (min-width:1024px){.jmenu-icon{display:none}}@media (max-width:1024px){.jmenu{height:100%;position:fixed!important;top:0;left:0;background-color:#fff;z-index:9000;overflow-y:scroll;overflow-x:hidden;box-shadow:1px 1px 0 1px #ccc;padding:20px;display:none}.jmenu .close,.jmenu-icon,.jmenu-logo{display:block}.jmenu li{margin-bottom:10px}.jmenu-logo{max-height:50px;margin-bottom:20px;max-width:120px}}.jmenu div::-webkit-scrollbar{width:12px}.jmenu div::-webkit-scrollbar-thumb{background-color:transparent}.jmenu div:hover{scrollbar-color:initial}.jmenu div:hover::-webkit-scrollbar-thumb{background-color:#aaa}
    /** inter **/
    @font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(./UcCm3FwrK3iLTcvnUwkT9nA2.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(./UcCm3FwrK3iLTcvnUwQT9g.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(./UcCo3FwrK3iLTcvvYwYL8g.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(./UcCo3FwrK3iLTcviYwY.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
    /** material **/
    @font-face{font-family:'Material Icons';font-style:normal;font-weight:400;font-display:swap;src:url(./flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format('woff2')}.material-icons{font-family:'Material Icons';font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:'liga';-webkit-font-smoothing:antialiased}
</style>

<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
        new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
    j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
    'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-NPRG44R5');</script>
<!-- End Google Tag Manager -->
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NPRG44R5" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->

<div class='top'>
    <div class='row container middle'>
        <div id="logo" class='logo'><div class='logo p6'>
    <a href="/" target="_top"><img src="img/logo/logo.webp" width="160" height="30" alt="Jspreadsheet - The JavaScript Data Grid with Spreadsheet Controls"></a>
</div>
</div>
        <div id='top' class="row f4"><div class="row">
    <div id="products" class="big-screen-only products jpicker button small" style="display: none">Products</div>
    <div id="version-selection"></div>
    <div class="big-screen-only" id="framework-selection"></div>
</div>
<nav class="big-screen-only">
    <ul class="row gap small">
        <li><lm-resources-menu></lm-resources-menu></li>
        <li><a href="/products" class="button small">Extensions</a></li>
        <li><a href="/contact" class="button small">Contact</a></li>
        <li><a href="/pricing" class="button small">Pricing</a></li>
    </ul>
</nav>
<div class="row gap small big-screen-only">
            <span><a href="/me/login" class="button small">Log In</a></span>
        <span id="documentation"><a href="/docs/getting-started" class="button secondary small">Documentation</a></span>
        <span><a href="/me/login?create" class="button primary small">Free trial</a></span>
    </div>
<div id="top-jmenu" class="row right small-screen-only"></div>
</div>
    </div>
</div>

<div class='row container'>
    <div id='menu' class='column jmenu'><div style="background-color: #fff;">
<img src="img/logo.svg" class="jmenu-logo" alt="logo" />
<div class="small-screen-only p10">
    <br>
    <ul style="font-weight: bold;">
        <li title="Contact"><a href="/contact">Contact</a></li>
        <li title="Subscription"><a href="/pricing">Pricing</a></li>
        <li title="Other products"><a href="/products">Extensions</a></li>
                <li title="Login"><a href="/me/login" target="_top">Login</a></li>
            </ul>
    <br>
</div>

<nav data-id="featured">
    <h2 class="folder">Featured</h2>
    <div>
        <h3>Premium extensions</h3>
        <ul>
            <li><a href="/products/csv-importer">CSV</a></li>
            <li><a href="/products/comments">Comments</a></li>
            <li><a href="/products/charts">Charts</a></li>
            <li><a href="/products/forms">Forms</a></li>
            <li><a href="/products/formulas">Formulas</a></li>
            <li><a href="/products/export-to-xlsx">Export to XLSX</a></li>
            <li><a href="/products/import-from-xlsx">Import from XLSX</a></li>
            <li><a href="/products/search">Search</a></li>
            <li><a href="/products/validations">Validations</a></li>
        </ul>

        <h3>External libraries</h3>
        <ul>
            <li><a href="https://jsuites.net" target="_blank">jSuites</a></li>
            <li><a href="https://lemonadejs.net" target="_blank">LemonadeJS</a></li>
        </ul>

        <h3>Examples</h3>
        <ul>
            <li><a href="/docs/v9/examples/highcharts" title="Charts integration with HighCharts">Highcharts</a></li>
            <li><a href="/docs/v9/examples/real-time-spreadsheet" title="Real-time spreadsheet">Real-time spreadsheet</a></li>
        </ul>
    </div>
</nav>

<nav data-id="spreadsheet-documentation">
    <h2 class="folder selected">Documentation</h2>
    <div>
        <h3>Getting started</h3>
        <ul>
            <li><a href="/docs/v9/getting-started">Getting started</a></li>
            <li><a href="/docs/v9/performance">Performance</a></li>
            <li><a href="/docs/v9/upgrades">Upgrades</a></li>
            <li><a href="/docs/v9/comparison">Comparison</a></li>
            <li><a href="/docs/v9/quick-reference">Quick reference</a></li>
            <li><a href="/docs/v9/faq">Common questions</a></li>
        </ul>

        <h3>Integrations</h3>
        <ul>
            <li><a href="/docs/v9/react">React</a></li>
            <li><a href="/docs/v9/angular">Angular</a></li>
            <li><a href="/docs/v9/vue">VueJS</a></li>
            <li><a href="/docs/v9/charts">ChartJS</a></li>
        </ul>

        <h3>Spreadsheet features</h3>
        <ul>
            <li><a href="/docs/v9/cells">Cells</a></li>
            <li><a href="/docs/v9/columns">Columns</a></li>
            <li><a href="/docs/v9/comments">Comments</a></li>
            <li><a href="/docs/v9/contextmenu">Contextmenu</a></li>
            <li><a href="/docs/v9/config">Config</a></li>
            <li><a href="/docs/v9/defined-names">Defined Names</a></li>
            <li><a href="/docs/v9/data">Data</a></li>
            <li><a href="/docs/v9/editable">Editable</a></li>
            <li><a href="/docs/v9/filters">Filters</a></li>
            <li><a href="/docs/v9/footers">Footers</a></li>
            <li><a href="/docs/v9/formulas">Formulas</a></li>
            <li><a href="/docs/v9/freeze-columns">Freeze columns</a></li>
            <li><a href="/docs/v9/freeze-rows">Freeze rows</a></li>
            <li><a href="/docs/v9/group-columns">Group columns</a></li>
            <li><a href="/docs/v9/group-rows">Group rows</a></li>
            <li><a href="/docs/v9/headers">Headers</a></li>
            <li><a href="/docs/v9/history">History</a></li>
            <li><a href="/docs/v9/images">Images</a></li>
            <li><a href="/docs/v9/merged-cells">Merged cells</a></li>
            <li><a href="/docs/v9/meta-information">Meta information</a></li>
            <li><a href="/docs/v9/nested-headers">Nested headers</a></li>
            <li><a href="/docs/v9/pagination">Pagination</a></li>
            <li><a href="/docs/v9/persistence">Persistence</a></li>
            <li><a href="/docs/v9/rows">Rows</a></li>
            <li><a href="/docs/v9/search">Search</a></li>
            <li><a href="/docs/v9/selection">Selection</a></li>
            <li><a href="/docs/v9/sorting">Sorting</a></li>
            <li><a href="/docs/v9/style">Style</a></li>
            <li><a href="/docs/v9/toolbars">Toolbars</a></li>
            <li><a href="/docs/v9/viewport">Viewport</a></li>
            <li><a href="/docs/v9/worksheets">Worksheets</a></li>
        </ul>

        <h3>Scripting</h3>
        <ul>
            <li><a href="/docs/v9/format">Format</a></li>
            <li><a href="/docs/v9/events">Events</a></li>
            <li><a href="/docs/v9/editors">Editors</a></li>
            <li><a href="/docs/v9/plugins">Plugins</a></li>
            <li><a href="/docs/v9/helpers">Helpers</a></li>
            <li style='display: none'><a href="/docs/v9/validations">Validations</a></li>
        </ul>

        <h3>Editors</h3>
        <ul>
            <li><a href="/docs/v9/dropdown-and-autocomplete">Dropdown</a></li>
            <li><a href="/docs/v9/date-and-calendar">Date and calendar</a></li>
        </ul>

        <h3>Appearance</h3>
        <ul>
            <li><a href="/docs/v9/international-settings">International</a></li>
            <li><a href="/docs/v9/appearance">Appearance</a></li>
            <li><a href="/docs/v9/themes">Themes</a></li>
        </ul>
    </div>
</nav>

<nav data-id="examples">
    <h2 class="folder">Examples</h2>
    <div>
        <h3>Spreadsheet data</h3>
        <ul>
            <li><a href="/docs/v9/examples/data-binding">Json data binding</a></li>
            <li><a href="/docs/v9/examples/xlsx-parser">Import from XLSX</a></li>
            <li><a href="/docs/v9/examples/xlsx-render">Export to XLSX</a></li>
        </ul>

        <h3>Formulas</h3>
        <ul>
            <li><a href="/docs/v9/examples/custom-formulas">Custom formulas</a></li>
            <li><a href="/docs/v9/examples/cross-calculations">Cross calculations</a></li>
            <li><a href="/docs/v9/examples/external-values">External values</a></li>
        </ul>

        <h3>Editors</h3>
        <ul>
            <li><a href="/docs/v9/examples/custom-column-type">Custom</a></li>
            <li><a href="/docs/v9/examples/progressbar" title="Progressbar column type">Progressbar</a></li>
            <li><a href="/docs/v9/examples/autonumber" title="Auto increment column type">Autonumber</a></li>
            <li><a href="/docs/v9/examples/richtext" title="HTML editor">Richtext</a></li>
        </ul>

        <h3>Spreadsheet features</h3>
        <ul>
            <li><a href="/docs/v9/examples/events" title="Control the interaction via callbacks">Events</a></li>
            <li><a href="/docs/v9/examples/fullscreen">Fullscreen</a></li>
            <li><a href="/docs/v9/examples/gridline">Gridline</a></li>
            <li><a href="/docs/v9/examples/readonly">Readonly</a></li>
            <li><a href="/docs/v9/examples/rotate">Rotate</a></li>
            <li><a href="/docs/v9/examples/text-wrapping">Text wrapping</a></li>
        </ul>

        <h3>Integrations</h3>
        <ul>
            <li><a href="/docs/v9/examples/webcomponent" title="Spreadsheet as a webcomponent">Webcomponent</a></li>
            <li><a href="/docs/v9/examples/jquery" title="Using jspreadsheet with Jquery">Jquery</a></li>
            <li><a href="/docs/v9/examples/spreadsheet-with-charts" title="Spreadsheet with charts">Chartjs</a></li>
        </ul>

        <h3>Advanced examples</h3>
        <ul>
            <li><a href="/docs/v9/examples/highcharts" title="Charts integration with HighCharts">Highcharts</a></li>
            <li><a href="/docs/v9/examples/chartjs" title="Charts integration with chartjs">ChartJS</a></li>
            <li><a href="/docs/v9/examples/real-time-spreadsheet" title="Real-time spreadsheet">Real-time spreadsheet</a></li>
            <li><a href="/docs/v9/examples/food-store" title="Grocery store">Grocery store</a></li>
            <li><a href="/docs/v9/examples/project-management" title="Project management">Project management</a></li>
            <li><a href="/docs/v9/examples/payment-calculator" title="Payment calculator">Payment calculator</a></li>
        </ul>
    </div>
</nav>

<br><br><br><br>

</div></div><div class='column f4'>
        <div class="row start">
            <div class='column f3'>
                <div id='content' class="md lm-pages"></div>
            </div>
            <div class='column' id="index"></div>
        </div>
    </div>
</div>

<link rel="icon" href="/favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="components/template/template.css" type="text/css" />
<link rel="stylesheet" href="components/datagrid/dist/style.css" type="text/css" />

<link rel="stylesheet" href="css/login.css" type="text/css" />

<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/lemonadejs/dist/lemonade.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@jsuites/sha512/sha512.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@lemonadejs/router/dist/index.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@lemonadejs/data-grid/dist/index.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@jsuites/indexing/indexing.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@jsuites/menu/menu.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/tabularjs/dist/index.min.js" defer></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ace-builds@1.36.5/src-min/ace.min.js" defer></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ace-builds@1.36.5/src-min/mode-javascript.min.js" defer></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ace-builds@1.36.5/src-min/mode-html.min.js" defer></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ace-builds@1.36.5/src-min/mode-typescript.min.js" defer></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ace-builds@1.36.5/src-min/theme-github_dark.min.js" defer></script>

<script type="text/javascript" src="/v10/plugins/properties.min.js"></script>
<script type="text/javascript" src="/v10/plugins/columns.min.js"></script>

<div id="config"><link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/clockpicker@0.0.7/dist/jquery-clockpicker.min.css" />

<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/highcharts@10/highcharts.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/moment@2/moment.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/chart.js@3/dist/chart.umd.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jszip@3.6.0/dist/jszip.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/pdf-lib/dist/pdf-lib.js"></script>
<script type="text/javascript" src="https://unpkg.com/@pdf-lib/fontkit@1"></script>
<script type="text/javascript" src="https://unpkg.com/regenerator-runtime@0/runtime.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/clockpicker@0.0.7/dist/jquery-clockpicker.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/numeral.js/2.0.6/numeral.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.3.0/Chart.js"></script>

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@lemonadejs/studio@5/dist/style.min.css" type="text/css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/jsuites@5/dist/jsuites.min.css" type="text/css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/jspreadsheet@9/dist/jspreadsheet.min.css" type="text/css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@jspreadsheet/charts/dist/style.min.css" type="text/css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@jspreadsheet/comments/dist/style.min.css" type="text/css" />

<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@lemonadejs/studio@5/dist/index.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jsuites@5/dist/jsuites.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jspreadsheet@9/dist/index.min.js"></script>

<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@jspreadsheet/cloud/dist/index.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@jspreadsheet/charts/dist/index.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@jspreadsheet/importer/dist/index.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@jspreadsheet/search/dist/index.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@jspreadsheet/sheets/dist/index.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@jspreadsheet/validations/dist/index.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@jspreadsheet/formula-pro@4/dist/index.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@jspreadsheet/formula-charts/dist/index.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@jspreadsheet/comments/dist/index.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@jspreadsheet/forms/dist/index.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@jspreadsheet/parser@2/dist/index.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@jspreadsheet/render/dist/index.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@jspreadsheet/orgchart/dist/index.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@jspreadsheet/formify/dist/index.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@jspreadsheet/formifier/dist/index.min.js"></script>

<script type="text/javascript" src="/v8/plugins/properties.js"></script>
<script type="text/javascript" src="/v9/plugins/columns.js"></script>

<script>
// Precision
formula.adjustPrecision = true;
// Formula
jspreadsheet.setLicense('YmFjZDM0ZGJiODU5ZDYzNzEyNmRkNDQ5NDllNTUyZjQyZDk3OTkzMTM1MDVkOTkwOTc5MTU3NWE1NmQ5MTM3ODhhNGZkZmJhNWNjOTk0MjRlMTZlNzgzMGRhMDFjZTczMjRmMTdmZTBhZjllNzc4YjUwNzM2NDQzZDM4OTU1M2QsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94Tnpnd016QXhPRFU0TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2liRzlqWVd4b2IzTjBJbDBzSW5Cc1lXNGlPaUl6TkNJc0luTmpiM0JsSWpwYkluWTNJaXdpZGpnaUxDSjJPU0lzSW5ZeE1DSXNJbll4TVNJc0luWXhNaUlzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElpd2ljR2wyYjNRaVhTd2laR1Z0YnlJNmRISjFaWDA9');
// Extensions
jspreadsheet.setExtensions({ formula, parser, render, sheets, forms });
</script></div>

<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@jsuites/template/template.min.js"></script>

<script type="text/javascript" src="js/login.js?a"></script>
<script type="text/javascript" src="js/exemplify.min.js"></script>
<script type="text/javascript" src="js/theme-builder.min.js"></script>
<script type="text/javascript" src="js/app.js?a"></script>

<script>document.addEventListener('DOMContentLoaded', builder);</script>

<script type="text/javascript" src="https://accounts.google.com/gsi/client" async defer></script>
<script type="text/javascript" src="https://alcdn.msauth.net/browser/2.37.0/js/msal-browser.min.js"></script>
<!-- [reCAPTCHA migration] Turnstile replaced by reCAPTCHA Enterprise -->
<!-- <script type="text/javascript" src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit" async defer></script> -->

</body>
</html>
