Skip to main content

syncfusion-javascript-excel

Create, open, edit, and save Microsoft Excel (.xlsx) workbooks with Syncfusion Excel for JavaScript (`@syncfusion/ej2-xlsx`) in Node.js and browsers. Covers worksheets, cells, formulas (text only), styles, tables, charts, images, shapes, hyperlinks, comments, conditional formatting, data validation, form controls, protection, freeze panes, named ranges, and round-trip OOXML preservation. Use when building non-UI spreadsheet file processing in JavaScript or TypeScript—not for EJ2 Spreadsheet or Grid UI components.

Informações da origem

Repositório
syncfusion/document-sdk-skills
Última atividade na origem
6 de outubro de 2026 às 05:06
Idioma detectado do SKILL.md
inglês
Estrelas
2
Forks
0

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Explorador de arquivos
16 arquivos

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
syncfusion-javascript-excel
description
Create, open, edit, and save Microsoft Excel (.xlsx) workbooks with Syncfusion Excel for JavaScript (`@syncfusion/ej2-xlsx`) in Node.js and browsers. Covers worksheets, cells, formulas (text only), styles, tables, charts, images, shapes, hyperlinks, comments, conditional formatting, data validation, form controls, protection, freeze panes, named ranges, and round-trip OOXML preservation. Use when building non-UI spreadsheet file processing in JavaScript or TypeScript—not for EJ2 Spreadsheet or Grid UI components.
metadata
{"author":"Syncfusion Inc","version":"34.1.29"}
# Syncfusion JavaScript Excel (`@syncfusion/ej2-xlsx`) Programmatic Excel (`.xlsx`) create / open / edit / save for **Node.js and browsers**. This is a **file-processing library**, not a spreadsheet UI. **Package:** `@syncfusion/ej2-xlsx` **Import surface:** `import { … } from '@syncfusion/ej2-xlsx'` only **Not this skill:** EJ2 Spreadsheet component, Grid UI, formula calculation engines, VBA execution ## Table of contents - [When to use](#when-to-use) - [Documentation and navigation guide](#documentation-and-navigation-guide) - [Quick start](#quick-start) - [Core rules (always apply)](#core-rules-always-apply) - [Common patterns](#common-patterns) - [Import checklist](#import-checklist) ## When to use Use this skill when the user needs to: - Build or transform `.xlsx` files in JS/TS (reports, exports, ETL, templates) - Round-trip existing workbooks while preserving unknown OOXML - Author cells, styles, tables, charts, validation, CF, comments, protection, etc. Do **not** use for on-screen spreadsheet editing widgets or EJ2 Grid. ## Documentation and navigation guide ### Getting started 📄 **Read:** [references/getting-started.md](references/getting-started.md) - Install and import - `Workbook.create` / `open` / `save` - Node path vs browser bytes - Minimal create → write cells → save ### Workbook and sheets 📄 **Read:** [references/workbook-and-sheets.md](references/workbook-and-sheets.md) - `sheet(name|index)`, `activeSheet`, add/remove/move sheets - Visibility, grid lines, zoom, column width / row height - Named ranges (`names`), document properties, `date1904` - Workbook protect / unprotect ### Cells, values, and addresses 📄 **Read:** [references/cells-values-and-addresses.md](references/cells-values-and-addresses.md) - `cell('A1')` and `cell(row, col)` (1-based) - `value` / `text` / `number` / `dateTime` - Sparse grid; clear vs empty - Error values (`isCellError`) ### Formulas, merges, and hyperlinks 📄 **Read:** [references/formulas-and-merged-hyperlinks.md](references/formulas-and-merged-hyperlinks.md) - Formula text only (never evaluated) - No implicit `=+/−/@` promotion on values - Merged cells - Hyperlinks (`url` | `file` | `unc` | `workbook`) ### Styles and number formats 📄 **Read:** [references/styles-number-formats.md](references/styles-number-formats.md) - `CellStyle`: font, fill, border, alignment, protection - `numberFormat` and built-in vs custom codes - Append-only style tables (never renumber) ### Rich text and shared strings 📄 **Read:** [references/rich-text-and-shared-strings.md](references/rich-text-and-shared-strings.md) - `workbook.createFont()` + `cell.richText` - Shared string storage behavior ### Tables, filters, and sort 📄 **Read:** [references/tables-filters-sort.md](references/tables-filters-sort.md) - Excel Tables (`tables.add`) - AutoFilter and sort **metadata only** (not runtime filter/sort engines) ### Charts 📄 **Read:** [references/charts.md](references/charts.md) - `addChart` + `ChartType.*` - Legend, title, series - Do not use `@syncfusion/ej2-xlsx/internal/charts` in app samples ### Images, shapes, and text boxes 📄 **Read:** [references/images-shapes-textboxes.md](references/images-shapes-textboxes.md) - `addImage` / `addShape` / `addTextBox` - Anchors in points; preset shapes ### Data validation 📄 **Read:** [references/data-validation.md](references/data-validation.md) - Whole, decimal, list, date, custom, etc. - Operators, error UI, list dropdown polarity ### Conditional formatting 📄 **Read:** [references/conditional-formatting.md](references/conditional-formatting.md) - `conditionalFormats.add(sqref)` - cellIs, expression, colorScale, dataBar, iconSet, top10, … - DXF append-only; no runtime paint ### Comments, form controls, and sheet protection 📄 **Read:** [references/comments-controls-protection.md](references/comments-controls-protection.md) - Classic notes and threaded comments - Check boxes, combo boxes, and other form controls - Sheet protect allow-flags; freeze panes ### API conventions 📄 **Read:** [references/api-conventions.md](references/api-conventions.md) - Index bases (sheet 0-based; cell row/col 1-based) - Public surface vs internal - Async save/open; TypeScript patterns ### Capability boundaries 📄 **Read:** [references/capability-boundaries.md](references/capability-boundaries.md) - What the library does **not** do - OOXML preservation and security limits - Workbook protect ≠ file encryption ## Quick start ```ts import { Workbook } from '@syncfusion/ej2-xlsx'; async function main(): Promise<void> { const wb = Workbook.create(); const sheet = wb.sheet(0); // first sheet; index is 0-based sheet.cell('A1').value = 42; sheet.cell(1, 2).text = 'hello'; // row 1, column 2 → B1 sheet.cell('A3').formula = 'SUM(A1:A1)'; // stored as text; leading = stripped sheet.cell('A4').numberFormat = '#,##0.00'; sheet.cell('A4').value = 1234.5; // Browser / any host: bytes const bytes = await wb.save(); // Round-trip const again = await Workbook.open(bytes); console.log(again.sheet(0).cell('A1').value); // 42 // Node only: path overload // await wb.save('./out.xlsx'); // const fromDisk = await Workbook.open('./out.xlsx'); } void main(); ``` ## Core rules (always apply) 1. **Formulas are text.** Never evaluate; never resolve external workbook links. 2. **No implicit formula promotion.** `cell.value = '=1+1'` stays a **string**, not a formula. Use `cell.formula`. 3. **Sparse grid.** Do not allocate cells from dimension/spans/column ranges alone. 4. **Append-only shared tables.** Shared strings, styles, number formats, `dxf` — never renumber existing indices. 5. **Preserve unknown OOXML** on load/save when the library does not model a part. 6. **Public API only** in samples: import from `@syncfusion/ej2-xlsx`. Do not teach `./internal/charts` for application authors. 7. **Indexing:** `sheet(i)` is **0-based**; `cell(row, col)` is **1-based**; A1 strings always work. 8. Prefer `sheet(0)` or `wb.activeSheet` over non-public helpers in teaching samples. 9. `getCell` is deprecated — use **`cell`**. 10. Workbook/sheet **protect** is OOXML protection, **not** AES file encryption / password-to-open. ## Common patterns ### Write a column of values ```ts const sheet = wb.sheet(0); const rows = ['Name', 'Ada', 'Lin']; for (let r = 0; r < rows.length; r++) { sheet.cell(r + 1, 1).text = rows[r]; } ``` ### Style a header ```ts sheet.cell('A1').text = 'Total'; sheet.cell('A1').style = { font: { bold: true, size: 12 }, fill: { type: 'pattern', patternType: 'solid', fgColor: { rgb: 'FF4472C4' } }, alignment: { horizontal: 'center' }, }; ``` ### Open → edit → save (Node) ```ts const wb = await Workbook.open('./in.xlsx'); wb.sheet('Sheet1').cell('B2').value = 100; await wb.save('./out.xlsx'); ``` ## Import checklist Typical named imports from `@syncfusion/ej2-xlsx`: | Need | Import | |------|--------| | Workbook I/O | `Workbook` | | Sheet handle | `Worksheet` (type) | | Cells | `Cell`, `CellValue`, `isCellError` | | Styles | `CellStyle`, `BorderStyle`, `Font` | | Charts | `ChartType`, `LegendPosition`, `Chart` | | Tables | `Table`, `Tables` | | CF / DV | `ConditionalFormats`, `DataValidations`, … | | Protection | `SheetProtectionOptions`, `WorkbookProtectionOptions` | | Drawing | `AutoShapeType`, `Image`, `TextBox`, `Shape` | When unsure which reference to open: start at **getting-started**, then **api-conventions**, then the feature file that matches the user task.
Ver no GitHub