30 open-source projects similar to python-openxml/python-docx, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Python Docx alternative.
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
PHPWord is a PHP word processing library used for programmatically reading and writing word processing documents. It functions as an OOXML document generator, a word file parser, and a document template engine. The library enables the generation of new documents by applying structured data to existing templates or by creating files from scratch. It provides capabilities for extracting and parsing content, metadata, and structure from existing word processing files. The project covers a broad range of document generation features, including layout formatting, metadata management, and the inse
QuestPDF is a C# PDF generation library and layout engine used to create structured documents, reports, and invoices. It utilizes a fluent API and a component-based layout approach to convert code into high-fidelity PDF and XPS files. The library distinguishes itself with a dedicated layout debugger that provides real-time previews, hot-reload capabilities, and visual boundary tools to map rendered elements back to source code. It also functions as an accessibility tool, providing semantic tagging and navigational aids to ensure documents comply with international accessibility and archival s
Yoopta-Editor is a headless framework for building customizable block-based rich text editors. It utilizes a JSON-based document engine to manage editor state and provides a WYSIWYG interface for creating structured documents. The system separates core document logic from the visual layer, allowing for complete customization of the user interface. The framework is designed for real-time collaborative editing, featuring a synchronization engine with conflict resolution and remote cursor presence tracking. It offers a highly extensible plugin system that allows developers to define new content
docx is a JavaScript and TypeScript library for the programmatic generation and manipulation of Word documents. It serves as an OOXML document generator, allowing developers to create formatted office files through code instead of manual editing. The library enables document automation across both Node.js and web browser environments. It supports client-side document export, allowing users to generate and download files directly in the browser without a backend server. Capabilities include the ability to define page layouts, margins, and orientation. Users can programmatically insert documen
This project is an Open XML document library and generator used to programmatically create and modify Microsoft Office files. It enables the production of Word, Excel, and PowerPoint documents by manipulating the underlying Open XML structure. The library provides capabilities for Open XML document processing, including the automated modification of existing files and the generation of formatted office reports and spreadsheets for server-side production.
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
unioffice is a comprehensive document processing suite that provides a PDF document processor, an Open XML document library, a document security toolkit, and a document content extractor. It is designed to programmatically create, read, and modify Word, Excel, and PowerPoint files, as well as generate and edit PDF documents. The project is distinguished by its native language implementation of the Open XML standard, which removes native binary dependencies to simplify container deployments. It features advanced capabilities for digital document security, including hardware-based PDF signing,
This repository contains the HTML specification, which defines the core standards for web page structuring, content organization, and document rendering. It establishes the fundamental algorithms for state-machine-based tokenization, tree construction for the document object model, and origin-based security isolation. The specification provides a framework for defining custom elements with independent lifecycles and registries. It also details the requirements for cross-document communication, session history management, and the synchronization of interface properties with content attributes.
pdfmake is a JavaScript PDF generation library and declarative document engine that transforms structured JavaScript objects into formatted PDF files. It functions as a layout engine capable of producing documents on both the client side within a web browser and on the server side using Node.js. The library utilizes a declarative approach to translate object-based document definitions into final PDFs. It distinguishes itself through a virtual layout engine that calculates element positions and page breaks and an inheritance-based style system that uses dictionaries to maintain visual consiste
Cherry Markdown is a web-based Markdown editor and parsing engine that converts markup text into sanitized HTML with a real-time synchronized preview pane. It functions as a rich text interface and WYSIWYG tool, providing a system for transforming markup strings into HTML documents or portable formats. The project distinguishes itself through high-performance rendering and a flexible extensibility model. It uses virtual DOM diffing and partial rendering to maintain responsiveness in large documents, and it allows for the creation of custom parsing rules and specialized HTML components via a p
This project is a markdown syntax cheatsheet and reference guide designed for writing documents with a focus on GitHub Flavored Markdown. It serves as a formatting reference and documentation template for creating technical content and project landing pages. The guide provides a comprehensive collection of examples for GitHub specific extensions, including task lists and callout alerts. It functions as a visual directory for implementing structured layout elements such as tables, mathematical equations, and code blocks. The reference covers broad capability areas including content and media
Trumbowyg is a lightweight JavaScript WYSIWYG editor used to create and format rich-text and HTML content directly within a web browser. It serves as a client-side tool for generating semantic HTML markup and authoring web content. The project features a modular, plugin-based architecture that allows for the addition of new formatting commands and toolbar buttons. It provides a configurable interface where the toolbar layout can be customized via a predefined array and labels can be translated through localization files. The editor covers a wide range of content manipulation capabilities, in
Tablewriter is a Go library and tool for generating ASCII and Unicode tables from structured data. It functions as a multi-format table renderer, converting data into layouts for terminal output, Markdown, HTML, and SVG. The project distinguishes itself through the ability to embed nested tables within cells and merge adjacent cells horizontally or vertically. It also supports ANSI color application for headers, rows, and borders to style terminal user interfaces. The toolkit provides capabilities for mapping Go structs and slices into rows, loading and converting CSV files via a command-lin
Pell is a JavaScript text editor library and browser-based rich text editor. It provides a lightweight WYSIWYG HTML editor for formatting styled text and outputting HTML directly within a web browser. The library is a dependency-free vanilla implementation that uses standard Web APIs. It allows for the definition of custom editor actions and text actions to extend the toolbar and the creation of custom visual themes to modify the editor appearance. The editor covers rich text editing and browser-based text formatting, including the application of bold, italic, headings, and lists. It also su
CKEditor 4 is a browser-based WYSIWYG rich text editor that enables users to create and format HTML content directly in the browser. It operates on a plugin-based architecture with a configurable toolbar system, DOM-based content editing, and an event-driven lifecycle, all delivered through a CDN-based distribution model. The editor supports skin-based theming and includes a legacy plugin compatibility layer for backward compatibility. The editor distinguishes itself as a cross-platform framework that integrates natively with Angular, React, Vue, Electron, Android, and iOS environments. It of
This project is a framework for building real-time collaborative rich-text editing environments. It provides a structured, schema-based engine that enforces document integrity while allowing multiple users to modify content simultaneously through synchronized state management and conflict resolution protocols. The editor distinguishes itself through a highly modular plugin architecture that supports the integration of complex, interactive UI components built with external frontend libraries. By utilizing a custom rendering engine and a versioned, immutable document state tree, it enables deve
This project is a collection of implementation patterns and source code examples for building desktop applications using various Python interface libraries. It provides reference implementations and architectural patterns for multiple frameworks, including PyQt, PySide, Tkinter, Kivy, and Streamlit. The repository distinguishes itself by offering specialized examples for diverse interface types, ranging from professional desktop software and native windows to reactive web-based data dashboards and data science tools. It includes specific reference material for cross-platform UI patterns, such
pdfminer.six is a programmatic tool for extracting text, layout information, and metadata from PDF documents into machine-readable formats. It functions as a document parser that converts internal PDF objects and structures into accessible data objects for analysis. The project includes utilities for decrypting RC4 and AES encrypted files to enable content extraction. It also provides a layout analyzer to identify fonts, colors, and text locations to determine the organizational structure of pages. The system covers a broad range of extraction capabilities, including the retrieval of embedde
python-docx-template is a template engine for generating Microsoft Word documents by merging .docx files with data contexts using a logic-based markup syntax. It functions as a document automator that injects variables, images, and sub-documents into Word files while maintaining the original styling. The project uses a rendering system based on Jinja2 to apply template logic and filters to Office Open XML files. It allows for the creation of custom template filters to transform data during the rendering phase and includes a command line interface for producing documents by passing a template
TinyXML-2 is a lightweight C++ library for parsing, manipulating, and generating XML documents. It functions as a UTF-8 XML processor that represents data through a hierarchical Document Object Model. The library provides tools for both DOM parsing and direct document generation via data streams. It includes capabilities for navigating the XML tree to locate specific elements, modifying attributes and content, and resolving character entities and Unicode numeric references into UTF-8 text. The processor includes syntax validation and diagnostic utilities that track line-number metadata for e
This project is a Node.js library for bidirectional conversion between XML strings and JavaScript objects. It functions as an XML parser that transforms XML content into structured data and an XML serializer that generates formatted strings from JavaScript data objects. The toolkit includes a data transformer that applies custom processing functions to tags and attributes during the conversion process. It manages XML namespaces and supports the definition of custom root elements to maintain document structure during generation. The system handles XML data parsing, string generation, and name
This project is an open-source office suite that provides a collection of productivity applications for word processing, spreadsheets, presentations, and databases. It implements the Open Document Format standard to ensure interoperability between different office productivity tools. The suite includes a specialized formula equation editor for mathematical formatting, a vector graphics editor for scalable images, and a relational database manager for organizing structured data. The project covers broad functional domains including text document generation, spreadsheet management, presentatio
Prawn is a Ruby library and document layout tool used for the programmatic generation of PDF files. It functions as a vector graphics engine that allows for the creation of portable documents containing formatted text, custom shapes, and organized page layouts. The library differentiates itself through a coordinate-based vector rendering system that supports multi-stop gradient fills, complex polygons, and layer-based blending. It provides a comprehensive typography system capable of embedding TrueType and OpenType fonts to support UTF-8 characters and right-to-left text for multilingual publ
pdfcpu is a Go PDF processing library and command-line interface designed for programmatically manipulating, optimizing, and validating PDF files. It provides a toolkit for document content modification and structural management. The project distinguishes itself as an optimization tool and layout engine, capable of reducing file sizes and improving loading speeds by streamlining internal structures. It also functions as a security manager, providing password-based encryption, decryption, and digital signature verification. Its capability surface includes page management for merging, splittin
bpmn-js is a browser-based BPMN 2.0 web modeler and rendering engine used for creating, editing, and visualizing business process models. It functions as an XML process modeler that parses BPMN 2.0 XML data into interactive visual diagrams within a web application. The project distinguishes itself as a business process visualizer with capabilities for process flow simulation, which tracks token movement to mimic real-time execution. It also supports diagram version comparison to identify changes between model iterations and provides a layered overlay interface for binding metadata and custom
Pdfarranger is a PDF page organizer, document editor, image converter, and booklet generator. It provides a visual drag-and-drop interface to reorder, merge, split, and delete pages within PDF documents. The application includes specialized tools for creating booklet printing layouts and converting image files into PDF pages or exporting PDF pages as PNG and JPEG images. It allows for the modification of document metadata while preserving internal outlines and hyperlinks. The software covers a range of structural manipulations, including page rotation, resizing, cropping, and overlaying. It
NPOI is a pure .NET library for reading and writing Microsoft Office files in both legacy binary (.xls) and modern OpenXML (.xlsx, .docx) formats, operating entirely without requiring Microsoft Office or COM interop. It runs on Windows and Linux under .NET Standard and .NET Framework runtimes, using only managed code to parse and generate Office documents. The library provides comprehensive spreadsheet capabilities, including creating, editing, and reading Excel workbooks in both .xls and .xlsx formats, with support for cell formatting, styles, and formulas. It includes a streaming row-by-row
PyPDF2 is a pure Python library for reading, writing, and manipulating PDF files. It functions as a document manipulator, text extractor, and encryption tool, allowing users to process PDF files without relying on external C libraries or native binaries. The library provides specialized tools for modifying document structures, such as merging multiple files into one, splitting documents into separate files, and transforming page layouts through cropping. It also includes capabilities for securing documents via passwords and encryption. Additional capabilities include the extraction of writte
vlayout is an Android RecyclerView extension framework that uses pluggable layout helpers to mix grid, list, sticky, staggered, and fixed layouts within a single scrollable view. It provides a modular layout delegation system where each section of the RecyclerView is assigned a dedicated layout helper that manages its own measurement, placement, and decoration, enabling complex heterogeneous content displays. The framework extends RecyclerView's LayoutManager to delegate layout logic to these modular helper components, supporting features like sticky headers that remain visible at the top dur