Open-source JavaScript Office file viewer Rust / WebAssembly / Canvas 2D

Rust · WebAssembly · Canvas 2D

Office documents,
rendered in the
browser.

@silurus/ooxml is an open-source JavaScript Office file viewer library for .docx, .xlsx and .pptx. Its Rust/WASM engine parses and renders each file to Canvas in the browser; no server-side document conversion, native application or iframe is required.

@silurus/ooxml

About the library

Browser-based OOXML rendering.

Rust/WASM parsers and Canvas renderers for DOCX, XLSX and PPTX, with document APIs and ready-to-use viewers.

Rust/WASM parsers

DOCX, XLSX and PPTX parsing is implemented in Rust and compiled to WebAssembly.

Canvas rendering

Documents are rendered with the Canvas 2D API. Layout and feature support vary by format and document.

Specification-informed

The implementation refers to ECMA-376 / ISO 29500 and related Microsoft documentation where relevant.

Document APIs and viewers

Use built-in viewers or document APIs for custom previews, thumbnails and navigation.

Live in this page

Live renderer examples.

Switch formats, navigate pages or slides, and scroll the sheet.

sample-1.docx live · WASM

Format documentation: DOCX · XLSX · PPTX

What it renders

Format support at a glance.

Selected supported features for each format are listed below. See the README for the full matrix; complex documents may still differ from Office.

DOCX.docx
  • Paginated layout with headers, footers & sections
  • Complex tables with borders, fills & merged cells
  • Inline / anchored images and DrawingML shapes with image fills
  • CJK typography: ruby, vertical writing & line grids
  • Math equations and embedded charts
  • Text / element context, virtualized scroll, zoom, find & links
Full support matrix ↗︎
XLSX.xlsx
  • Multi-sheet workbooks with frozen panes & outlines
  • Cached formulas, dates and Excel number formats
  • Charts, sparklines and conditional formatting
  • Images, drawing shapes and styled slicers
  • Pivot metadata, comments and CJK cell text
  • Range / element context, TSV copy, find, zoom & drag-resize
Full support matrix ↗︎
PPTX.pptx
  • Slide master and layout inheritance
  • Preset / custom shapes, groups and SmartArt text
  • Gradient fills, picture effects and 3D shading
  • Combo, chartEx and stock charts with data labels
  • WordArt, math equations and embedded audio / video
  • Text / element context, virtualized scroll, zoom, find & links
Full support matrix ↗︎

Building “explain this”, “evaluate these cells”, or a similar read-only integration? See how selection context works across all three formats →

Announcements

Release and migration notices.

View all notices ↗︎