30 open-source projects similar to exceljs/exceljs, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Exceljs alternative.
XlsxWriter is a library for generating spreadsheets in the XLSX format, functioning as an Excel workbook writer and file generator. It provides the capability to write data, apply cell formatting, and build complex layouts across multiple worksheets. The project distinguishes itself with a memory-optimized writing mode that flushes large datasets to disk row-by-row, enabling the creation of files exceeding 4 GB while minimizing RAM consumption. It also includes a specialized mechanism for embedding binary project files and digital signatures to enable VBA macros and signed scripts within work
This project is a Model Context Protocol server that provides an interface for AI agents to programmatically create, read, and modify Excel workbooks. It serves as a bridge that enables large language models to perform spreadsheet automation and data visualization. The server allows AI agents to generate native Excel charts and pivot tables from raw data, transforming structured information into visual summaries. It provides a mechanism for remote spreadsheet management through a protocol-based connectivity layer. The system covers a broad range of spreadsheet manipulation capabilities, incl
This is a Go library for reading and writing XLSX files, providing a toolkit for spreadsheet generation and data extraction. It functions as an Office Open XML parser and generator, enabling the creation of workbooks with support for styles, formulas, and metadata. The project features a data mapper that uses Go struct tags and reflection to automatically align spreadsheet rows with structured data. It also includes a validation engine for defining input constraints, such as dropdown lists and error alerts, to control user data entry. The library covers a broad range of capabilities, includi
OfficeCLI is a headless office suite and automation tool designed for programmatically reading, editing, and generating Microsoft Office documents. It functions as an OOXML manipulation library and a document templating engine, providing a standalone binary that allows for the management of Word, Excel, and PowerPoint files without requiring a local installation of office software. The project distinguishes itself by exposing document operations as tools for AI agents via a JSON-RPC server and the Model Context Protocol. It enables advanced customization through raw XML manipulation using XPa
Spout is a spreadsheet file processing library and multi-format generator designed for reading and writing CSV, XLSX, and ODS files. It functions as a stream-based parser that processes large spreadsheet files incrementally to avoid loading entire documents into memory. The library provides capabilities for programmatic spreadsheet generation and data extraction. It supports custom content styling, allowing for the application of fonts, backgrounds, borders, and number formats to individual cells or rows. Beyond basic file input and output, the project covers workbook manipulation through se
EPPlus is a .NET library designed for programmatically creating, manipulating, and styling Excel files using the Open XML format. It functions as an office file manipulator and spreadsheet processor that allows for the generation and modification of workbooks without requiring the local installation of office productivity software. The library enables the creation of complex workbooks featuring charts, pivot tables, and conditional formatting for automated reporting. It includes an internal calculation engine to execute embedded formulas and spreadsheet logic, and provides security features s
PHPExcel is a PHP spreadsheet library used for programmatically reading and writing spreadsheet files in various formats. It utilizes an in-memory spreadsheet model that maps spreadsheet structures to a hierarchy of objects for programmatic manipulation. The library functions as an Office Open XML processor for generating and manipulating XLSX documents and serves as a reader for extracting data and structure from legacy binary XLS files. It also includes tools for CSV data integration and importing. The project provides capabilities for automated report generation and spreadsheet data extra
IronCalc is an XLSX spreadsheet engine and formula evaluator designed to compute numerical expressions and manage workbook structures. It utilizes a logic engine compatible with industry standards to evaluate formulas and manage cell dependencies. The project provides a comprehensive suite of specialized toolkits, including a financial calculation library for bond pricing and net present value, and an engineering math toolkit for complex number arithmetic and Bessel functions. It also features a web-based spreadsheet interface for creating and formatting workbooks. The engine covers a broad
EasyExcel is a Java processing library designed for reading and writing XLS, XLSX, and CSV files. It functions as a memory-efficient spreadsheet parser, an object-relational mapper that binds spreadsheet columns to Java class fields, and a stream-based exporter for handling high-volume data. The library distinguishes itself through a streaming model that processes large files row-by-row via listeners to prevent heap memory overflow. It also operates as a template engine, allowing the population of predefined spreadsheet files with dynamic data while preserving original layouts and styles. Br
gspread is a Python client library and API wrapper designed for programmatically interacting with Google Sheets. It serves as a spreadsheet automation library that enables the creation, organization, and management of cloud-based spreadsheets via Python scripts. The library provides a simplified interface for Google Sheets automation, allowing users to read, write, and update data without writing raw HTTP requests. It supports cloud spreadsheet integration, enabling external Python applications to use Google Sheets as a data storage layer. The project covers a broad range of capabilities inc
This project is a Model Context Protocol server that enables artificial intelligence assistants to interact directly with Microsoft Excel files. It functions as a bridge, allowing external systems to read, write, and modify spreadsheet data through a standardized interface. By supporting both direct file manipulation and headless application automation, the server provides a comprehensive utility for programmatic workbook management. The server distinguishes itself by combining data processing capabilities with a visual rendering pipeline. It can generate image snapshots of specific spreadshe
Tabulator is an interactive data table library and virtual DOM data grid used to create high-performance tables from JSON or arrays. It functions as a hierarchical data viewer and a spreadsheet interface component, capable of rendering thousands of records efficiently through viewport-based virtualization and progressive loading. The library distinguishes itself by providing a full spreadsheet interface mode with multi-sheet management, cell range selection, and bulk copy-paste capabilities. It supports complex data architectures, including nested data field mapping, expandable tree structure
This project is a JavaScript spreadsheet component and web-based data table that provides an interactive grid for managing tabular data. It functions as a cross-framework UI component compatible with React, Vue, and jQuery, and can also be embedded as a standalone web component. The grid is specifically designed for XLSX interoperability, allowing users to import and export XLSX files while preserving formulas and styles. It distinguishes itself through real-time collaboration for simultaneous multi-user editing and a flexible system for creating custom cell editors and specialized column typ
PhpSpreadsheet is a PHP library used for reading and writing spreadsheet files across various formats. It functions as a spreadsheet file generator and an Excel file parser, allowing for the programmatic creation and manipulation of documents compatible with software such as Microsoft Excel and LibreOffice Calc. The library provides capabilities for programmatic spreadsheet generation and data extraction, enabling the conversion of data from spreadsheet files into programmable PHP formats. It also facilitates cross-format spreadsheet conversion, allowing data to be moved between different sta
Apache Fesod is a lightweight Java library that wraps Apache POI to provide a streaming API for reading and writing large Excel files. Its core identity is a low-memory spreadsheet processor that prevents out-of-memory errors by handling data row by row, never loading an entire document into memory at once. The library distinguishes itself through a listener-driven event model that fires row-level events to user code as each row is parsed, enabling incremental processing. It also includes an object mapping layer that maps spreadsheet rows directly to Java objects using configurable column map
Excelize is a library for reading and writing spreadsheet files in the Office Open XML format. It provides a comprehensive suite of tools for programmatically creating, modifying, and analyzing workbooks, worksheets, and cell data, ensuring compatibility across various office software suites through structured XML serialization. The library distinguishes itself with a built-in formula calculation engine that evaluates complex mathematical and logical expressions directly against workbook data. It also features a memory-mapped streaming architecture, which allows for the efficient processing o
VisiData is a terminal-based interactive data analysis tool and browser designed for exploring, filtering, and sorting large tabular datasets. It functions as a structured data inspector that loads and flattens complex formats like JSON, XML, and PCAP into interactive sheets, as well as a terminal file manager for navigating directories and performing staged filesystem operations. The project distinguishes itself by rendering data visualizations, such as scatter plots and histograms, directly in the terminal using Unicode Braille characters. It provides a Python-based data wrangling environme
pdfkit is a JavaScript PDF generation library used to programmatically create binary PDF documents in Node.js and browser environments. It functions as a vector graphics engine for rendering paths, shapes, gradients, and tiling patterns, and as a tool for producing rich text and tagged documents that follow international accessibility standards for screen reader compatibility. The library includes a security and encryption utility for applying document encryption and restricting user permissions regarding printing, copying, or editing. It also serves as a form and annotation tool, enabling th
GAM is a command-line tool for administering Google Workspace and Cloud Identity. It translates command-line arguments into structured API calls, enabling administrators to manage users, groups, organizational units, and domain settings across a Google Workspace environment. The tool handles authentication through OAuth2 flows, service accounts, and workload identity federation, and supports multi-tenant configurations for managing multiple domains or cloud projects from a single installation. GAM distinguishes itself through its batch processing and automation capabilities. It can process la
python-docx is an OOXML document manipulation library used for creating, reading, and updating Microsoft Word files. It functions as a generator for building formatted documents and a parser for extracting text, metadata, and structural elements from existing files. The project provides a comprehensive style management system for defining and applying character, paragraph, and table styles within OpenXML documents. It allows for the programmatic control of document appearance through an object-oriented approach to the underlying XML schema. Capabilities cover a wide range of document generat
Handsontable is a JavaScript data grid that provides a spreadsheet-like interface for managing and editing large datasets within web applications. It functions as a virtualized data table that renders only visible cells to maintain performance, paired with a synchronization layer that binds the grid to underlying data structures. The project distinguishes itself through a built-in spreadsheet calculation engine for evaluating mathematical and logical expressions and a dedicated tool for exporting grid content into Excel XLSX files. It ensures interoperability with external spreadsheet softwar
React-admin is a framework for building data-driven administrative interfaces that connect to REST or GraphQL backends. It provides a comprehensive suite of tools for managing the full lifecycle of administrative applications, including resource-oriented routing, declarative form scaffolding, and context-driven state management. By utilizing a modular adapter-based architecture, the framework abstracts backend communication, allowing developers to build consistent CRUD interfaces that handle data fetching, authentication, and synchronization automatically. The project distinguishes itself thr
This project is a comprehensive collection of high-performance UI components and SDKs designed for building data-rich, cross-platform applications in Flutter. It provides a unified library of modular widgets and processing tools that enable developers to implement complex interface requirements, including advanced scheduling, tabular data management, and interactive data visualization, using a consistent declarative architecture. The library distinguishes itself through specialized, enterprise-grade capabilities that extend beyond standard UI elements. It includes a robust document processing
Laravel-Excel is an integration library for importing and exporting spreadsheet data between Laravel applications and Excel or CSV files. It provides a suite of tools for bidirectional spreadsheet integration, including a system for reading workbooks and mapping data into database models. The library distinguishes itself through a background processing system that handles large imports and exports using chunking and job queues. It supports template-driven exports by converting HTML tables from view templates into spreadsheet cells. The toolset covers broad capabilities for large dataset proc
Terminal-kit is a Node.js toolkit for building command-line applications and console user interfaces. It provides a comprehensive suite of utilities for console text styling, terminal graphics rendering, input parsing, and interactive interface construction. The library features a cell-based text grid model, a component document tree for hierarchical layout of interactive widgets, and off-screen pixel buffering for multi-layered image composition and manipulation. It handles direct escape-sequence output control and raw-mode input parsing to manage display regions and capture user interaction
PapaParse is a delimited text processing library that converts CSV files into JSON objects or arrays. It provides a suite of tools for parsing delimited text and transforming structured data objects back into CSV formats through bidirectional serialization. The library is characterized by its ability to process massive datasets using incremental streaming and chunk-based processing to prevent memory overload. It includes an automatic delimiter detector to identify separator characters without manual configuration and utilizes web workers to offload parsing logic to background threads, keeping
Excel Streaming Reader is a Java library designed for processing massive spreadsheet files by reading data incrementally. It functions as a memory-efficient parser that prevents system memory exhaustion by avoiding the need to load entire documents into memory at once. The library utilizes an event-driven approach to translate low-level XML parsing events into high-level row and cell objects. By implementing streaming row iteration, it exposes data through a sequential cursor interface that maintains only a small, configurable subset of rows in memory during the extraction process. To suppor
Luckysheet upgraded to Univer
Termui is a Go terminal user interface library used for building interactive dashboards and visual layouts within a command-line environment. It functions as a TUI layout engine, an interactive CLI framework, and a terminal data visualization toolkit. The library provides a set of specialized widgets for rendering charts, plots, gauges, and tables using character-based graphics. It includes a grid-based system for arranging interface elements using relative coordinates and proportional sizing to create structured displays. The toolkit covers a broad range of capabilities including data visua
Guzzle is a PHP HTTP client used for sending synchronous and asynchronous requests to web services. It serves as a concurrent HTTP request manager, an HTTP stream handler, and a middleware-based HTTP pipeline. The project is a PSR-7 compliant client, utilizing standardized PHP interfaces for requests, responses, and streams. The library differentiates itself through a customizable functional handler stack that allows for the interception and modification of the request and response lifecycle. It features an adapter-based transport system that enables swapping between network implementations,