# myliang/x-spreadsheet

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/myliang-x-spreadsheet).**

14,601 stars · 1,753 forks · JavaScript · MIT

## Links

- GitHub: https://github.com/myliang/x-spreadsheet
- Homepage: https://myliang.github.io/x-spreadsheet
- awesome-repositories: https://awesome-repositories.com/repository/myliang-x-spreadsheet.md

## Topics

`canvas` `es6` `excel` `javascript` `js` `spreadsheet`

## Description

x-spreadsheet is an HTML5 canvas spreadsheet component and web-based data grid designed for high-performance data display and cell manipulation. It serves as an interactive web component that allows users to manage structured data within a browser-based interface.

The project includes an XLSX file serializer that imports and exports spreadsheet state using binary XML formats compatible with Excel. It also features a locale-aware UI framework that translates interface labels and date formats through configurable language objects.

The component covers a broad range of capabilities including formula execution, cell formatting, and sheet structure manipulation. It provides tools for data integrity through input validation rules and supports batch operations such as autofilling and range copying. An external API allows for programmatic synchronization of cell data and the triggering of custom callbacks based on grid events.

## Tags

### User Interface & Experience

- [Spreadsheet Components](https://awesome-repositories.com/f/user-interface-experience/spreadsheet-components.md) — Provides an interactive web grid component supporting multiple sheets, cell merging, and layout manipulation. ([source](https://github.com/myliang/x-spreadsheet#readme))
- [Web Spreadsheet Components](https://awesome-repositories.com/f/user-interface-experience/web-spreadsheet-components.md) — Provides a comprehensive web-based spreadsheet component with grids, formatting, and formula functionality.
- [Spreadsheet Renderers](https://awesome-repositories.com/f/user-interface-experience/canvas-components/spreadsheet-renderers.md) — Uses an HTML5 canvas-based renderer to ensure high-performance display and manipulation of large datasets.
- [Cell Styling Systems](https://awesome-repositories.com/f/user-interface-experience/cell-styling-systems.md) — Enables styling of cell appearance via fonts, colors, borders, alignment, and text wrapping. ([source](https://github.com/myliang/x-spreadsheet#readme))
- [Data Grids](https://awesome-repositories.com/f/user-interface-experience/data-grids.md) — Ships an interactive tabular interface supporting real-time editing and row-column manipulation.
- [State-Synchronized Bindings](https://awesome-repositories.com/f/user-interface-experience/data-binding-frameworks/state-synchronized-bindings.md) — Synchronizes the visual grid display with an internal data model to maintain consistent application state.
- [Data Entry Forms](https://awesome-repositories.com/f/user-interface-experience/data-tables/data-entry-forms.md) — Enables the creation of structured data entry workflows using cell merging and validation rules.
- [Input Validation Rules](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/form-validation/input-validation-rules.md) — Implements declarative rules to validate the format and length of user-entered cell data.
- [Cell Validation Rules](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/form-validation/input-validation-rules/cell-validation-rules.md) — Constrains user entries by comparing cell values against predefined data integrity rules.
- [Programmatic Grid Data Synchronization](https://awesome-repositories.com/f/user-interface-experience/programmatic-grid-data-synchronization.md) — Allows updating cell text and retrieving values or styles via an external interface. ([source](https://github.com/myliang/x-spreadsheet/blob/master/readme.md))

### Data & Databases

- [Grid Layout Manipulations](https://awesome-repositories.com/f/data-databases/column-manipulations/grid-layout-manipulations.md) — Allows adjusting the grid layout by inserting, deleting, hiding, or resizing rows and columns. ([source](https://github.com/myliang/x-spreadsheet#readme))
- [Grid Range Operations](https://awesome-repositories.com/f/data-databases/batch-data-operations/grid-range-operations.md) — Accelerates data entry through copying, cutting, pasting, and autofilling across cell ranges. ([source](https://github.com/myliang/x-spreadsheet#readme))
- [Data Integrity](https://awesome-repositories.com/f/data-databases/data-governance-modeling/data-management-governance/data-integrity-validation/data-integrity.md) — Ensures data accuracy by restricting user input through specific cell validation rules. ([source](https://github.com/myliang/x-spreadsheet#readme))
- [XLSX Portability](https://awesome-repositories.com/f/data-databases/data-import-and-export/xlsx-portability.md) — Supports importing and exporting data in XLSX format to ensure portability with desktop spreadsheet software.
- [XML Spreadsheet Parsers](https://awesome-repositories.com/f/data-databases/xml-spreadsheet-parsers.md) — Implements a serializer that converts internal data into the binary XML format used by modern Excel files.

### Graphics & Multimedia

- [Grid Rendering](https://awesome-repositories.com/f/graphics-multimedia/canvas-rendering/grid-rendering.md) — Utilizes an HTML5 canvas to render high-performance grids capable of handling large datasets.

### Scientific & Mathematical Computing

- [Spreadsheet Formula Engines](https://awesome-repositories.com/f/scientific-mathematical-computing/formula-evaluators/spreadsheet-formula-engines.md) — Provides a browser-side parser for evaluating mathematical expressions and cross-cell dependencies within a workbook.

### Web Development

- [Browser-Based Data Processing](https://awesome-repositories.com/f/web-development/browser-based-data-processing.md) — Implements client-side formula evaluation and data validation directly in the browser to avoid server round-trips.

### Business & Productivity Software

- [Grid Event Listeners](https://awesome-repositories.com/f/business-productivity-software/grid-event-listeners.md) — Provides an API to trigger custom callbacks when users select or edit cells in the grid. ([source](https://github.com/myliang/x-spreadsheet/blob/master/readme.md))

### Content Management & Publishing

- [XLSX Export](https://awesome-repositories.com/f/content-management-publishing/content-formats-exporting/export-formats/xlsx-export.md) — Converts internal spreadsheet state into a binary XML format compatible with standard Excel XLSX files.
- [XLSX Serialization](https://awesome-repositories.com/f/content-management-publishing/content-formats-exporting/export-formats/xlsx-serialization.md) — Implements a serializer to import and export spreadsheet state using the binary XML format compatible with Excel.

### Software Engineering & Architecture

- [Formula Dependency Resolution](https://awesome-repositories.com/f/software-engineering-architecture/dependency-graph-resolution/formula-dependency-resolution.md) — Evaluates mathematical formulas by resolving cell dependencies through a specialized calculation engine.

### Part of an Awesome List

- [Tables and Spreadsheets](https://awesome-repositories.com/f/awesome-lists/data/tables-and-spreadsheets.md) — A web-based spreadsheet component.
