{
  "$schema": "https://ai.syncfusion.com/schema/registry-item.json",
  "name": "spreadsheet-editor-default",
  "framework": "javascript",
  "type": "registry:component",
  "component": "Spreadsheet",
  "variant": "default",
  "dependencies": [
    "@syncfusion/ej2-spreadsheet"
  ],
  "description": "Spreadsheet sample for entering, formatting, calculating, and organizing worksheet data.",
  "meta": {
    "essentialStudioRelease": "2026 Volume 2 (v34.1.29)",
    "license": "commercial-or-community",
    "licenseNote": "The Syncfusion package is licensed. The composition in this file is source you own and edit. See https://ai.syncfusion.com/licensing.md",
    "requiresLicenseKey": true,
    "requiresServerEndpoint": true,
    "platformIndex": "https://ai.syncfusion.com/javascript/llms.txt",
    "skillPack": "syncfusion/javascript-ui-components-skills",
    "docs": "https://ai.syncfusion.com/gallery/javascript/spreadsheet-editor-default.md"
  },
  "files": [
    {
      "target": "src/components/spreadsheet-editor-default/default.html",
      "content": "<div class=\"control-section\">\n    <div id=\"spreadsheet\"></div>\n</div>\n<!-- custom code start -->\n<div id=\"action-description\">\n    <p>\n        This sample demonstrates the <code>Spreadsheet</code> component and its features such as editing, formulas,\n        formatting, importing, and exporting.\n    </p>\n</div>\n<div id=\"description\">\n    <p>\n        The <code>Spreadsheet</code> component is used to organize and analyze data in tabular format.\n        It has a built-in calculation library that supports most commonly used formulas. Excel workbook files can be\n        imported and exported by providing the <code>openUrl</code> and <code>saveUrl</code> property.\n    </p>\n    <p>\n      <strong>Note:</strong> The <code>openUrl</code> and <code>saveUrl</code> endpoints used in these demo samples are\n      provided solely for demonstration purposes. The associated web service may experience memory limitations when\n      handling large Excel files, which could result in import or export failures. For better performance and reliability\n      especially when working with large files, we recommend hosting your own local service. For detailed guidance, please\n      refer to our <a target=\"_blank\" href=\"https://www.syncfusion.com/blogs/post/host-spreadsheet-open-and-save-services\">\n      Blog</a> post.\n    </p>\n    <p>\n        Data binding can be achieved by setting an array of JavaScript objects or an instance of Data Manager to the\n        <code>dataSource</code> property under the <code>ranges</code> of sheet. The <code>cellFormat</code> and\n        <code>numberFormat</code>\n        methods are used to apply format to a range of cells in the <code>created</code> event.\n    </p>\n    <p>\n        Learn how to organize, analyze, and edit spreadsheet data with built-in formulas, formatting, and import/export, as demonstrated in this sample.\n    </p>\n    <p><strong>Documentation Links</strong></p>\n    <ul>\n        <li><a target=\"_blank\" href=\"https://help.syncfusion.com/document-processing/excel/spreadsheet/javascript-es6/getting-started\">Getting Started</a></li>\n        <li><a target=\"_blank\" href=\"https://help.syncfusion.com/document-processing/excel/spreadsheet/javascript-es6/data-binding\">Data Binding</a></li>\n        <li><a target=\"_blank\" href=\"https://ej2.syncfusion.com/documentation/api/spreadsheet/index-default\">API Reference</a></li>\n    </ul>\n    <p><strong>More Resources</strong></p>\n    <ul>\n        <li><a target=\"_blank\" href=\"https://support.syncfusion.com/kb/web/section/726\">Knowledge Base</a></li>\n    </ul>\n    </p>\n    <p>\n        Looking for the full Typescript Spreadsheet Editor overview, features, pricing, and documentation? Visit the\n        <a target=\"_blank\" href=\"https://www.syncfusion.com/spreadsheet-editor-sdk/javascript-spreadsheet-editor\"> Typescript Spreadsheet Editor</a> page.\n    </p>\n</div>\n<style>\n    .control-section .control-wrapper {\n        height: calc(100vh - 230px);\n    }\n\n    .e-spreadsheet .e-main-panel .e-main-content {\n        margin-left: 0 !important;\n    }\n\n    #sb-content .e-spreadsheet .e-tab .e-tab-text {\n        display: inherit;\n    }\n\n    /* newTab support styles */\n    .ej2-new .sb-header,\n    .ej2-new .sb-bread-crumb,\n    .ej2-new #action-description,\n    .ej2-new #description-section,\n    .ej2-new #description {\n        display: none\n    }\n\n    .ej2-new .container-fluid,\n    .ej2-new .container-fluid .control-section,\n    #sidebar-section {\n        padding: 0px;\n    }\n\n    .ej2-new .sample-browser>.content.e-view {\n        top: 0px;\n        padding: 0px;\n        text-align: initial;\n        height: 100%;\n        overflow: hidden;\n    }\n\n    .ej2-new .control-section .control-section {\n        height: 100vh;\n    }\n   .e-spreadsheet .e-main-panel .e-main-content{\n        margin-left: 0 !important;\n    }\n    /* end of newTab support styles */\n</style>\n<!-- custom code end -->"
    },
    {
      "target": "src/components/spreadsheet-editor-default/default.ts",
      "content": "import { loadCultureFiles } from '../common/culture-loader';\nimport { Spreadsheet, getFormatFromType } from '@syncfusion/ej2-spreadsheet';\nimport * as dataSource from './default-data.json';\n\n/**\n * Default Spreadsheet sample\n */\n(window as any).default = (): void => {\n    loadCultureFiles();\n    //Initialize Spreadsheet component\n    const spreadsheet: Spreadsheet = new Spreadsheet({\n        sheets: [\n            {\n                name: 'Car Sales Report',\n                ranges: [{ dataSource: (dataSource as any).defaultData }],\n                rows: [\n                    {\n                        index: 30,\n                        cells: [\n                            { index: 4, value: 'Total Amount:', style: { fontWeight: 'bold', textAlign: 'right' } },\n                            { formula: '=SUM(F2:F30)', style: { fontWeight: 'bold' } },\n                        ]\n                    }],\n                columns: [\n                    { width: 180 }, { width: 130 }, { width: 130 }, { width: 180 },\n                    { width: 130 }, { width: 120 }\n                ]\n            }],\n        openUrl: 'https://document.syncfusion.com/web-services/spreadsheet-editor/api/spreadsheet/open',\n        saveUrl: 'https://document.syncfusion.com/web-services/spreadsheet-editor/api/spreadsheet/save',\n        created: (): void => {\n            // Apply the format to the specified range in the active sheet.\n            spreadsheet.cellFormat({ fontWeight: 'bold', textAlign: 'center', verticalAlign: 'middle' }, 'A1:F1');\n            // Apply format to the specified range in the active sheet.\n            spreadsheet.numberFormat('$#,##0.00', 'F2:F31');\n            spreadsheet.numberFormat('m/d/yyyy', 'E2:E30');\n        }\n    });\n\n    //Render initialized Spreadsheet component\n    spreadsheet.appendTo('#spreadsheet');\n};\n"
    }
  ]
}