OpenOOXML

Open-source DOCX, XLSX & PPTX editors for the web.

$npm install @openooxml/docx

01 Usage

Render and edit a document

Load a .docx file, mount the editor into any element, save back to the same format.

editor.ts
import { DocxEditor } from "@openooxml/docx";

const editor = new DocxEditor({
  container: document.querySelector("#editor"),
  document: await fetch("/report.docx").then((r) => r.arrayBuffer()),
});

editor.on("change", () => {
  const bytes = editor.save(); // Uint8Array, valid .docx
});

// TODO: illustrative snippet — final v1 API is documented on GitHub

02 Packages

One package per format

Everything ships under the @openooxml npm scope. A Rust/WASM core (v2) is in development.

@openooxml/docxavailableFull DOCX editor core. Rendering, editing, import & export.npm ↗
@openooxml/docx-reactavailableReact bindings for the DOCX editor.npm ↗
@openooxml/docx-vueavailableVue bindings for the DOCX editor.npm ↗
@openooxml/xlsxcomingSpreadsheet editor for XLSX workbooks.
@openooxml/pptxcomingPresentation editor for PPTX decks.

03 Continuity

Continuing eigenpal

eigenpal was a popular Apache 2.0 DOCX editor, deprecated when its maintainers moved to a commercial product. OpenOOXML is the community continuation — forked from the last open release, API-compatible, and staying Apache 2.0.

Existing projects can switch without touching a single import:

$npm i @eigenpal/docx-editor-core@npm:@openooxml/docx
Migration guide →