logo
Kurashizu Blogwhere ideas flow
  • Home
  • News
  • Blog
  • About
  • Home
  • News
  • Blog
  • About

© 2026 Kurashizu. All rights reserved.

Admin·New Post·Service Status
Powered by Cloudflare·01.11.26
← Back to news

A browser-based viewer for Office Open XML documents

Original article
ooxml.silurus.dev|32 points|8 comments|by mathiaswp|Sep 1, 2026

An In-Browser Viewer for Office Open XML Documents

OOXML Viewer is a high-performance, open-source JavaScript library designed to render Office files directly within the browser using a powerful combination of Rust, WebAssembly (WASM), and the Canvas 2D API.

@silurus/ooxml provides a comprehensive solution for displaying .docx, .xlsx, and .pptx files without relying on external dependencies.

🛠️ Technical Architecture

Unlike traditional viewers, this library eliminates the need for server-side document conversion, native software installations, or the use of iframes. Everything happens on the client side.

The rendering process can be conceptually represented as: Document→Rust/WASMCanvas Instructions→Visual Output\text{Document} \xrightarrow{\text{Rust/WASM}} \text{Canvas Instructions} \rightarrow \text{Visual Output}DocumentRust/WASM​Canvas Instructions→Visual Output

Core Pillars:

  • Rust/WASM Parsers: The heavy lifting of parsing .docx, .xlsx, and .pptx is handled by Rust and compiled to WASM for near-native speed.
  • Canvas Rendering: Visuals are drawn using the Canvas 2D interface for optimal browser performance.
  • Standard-Compliant: The engine is built based on the ECMA-376\text{ECMA-376}ECMA-376 and ISO 29500\text{ISO 29500}ISO 29500 specifications, alongside official Microsoft documentation.
  • Flexible Integration: Developers can use the pre-built viewers or leverage the Document APIs to create custom thumbnails, navigation systems, or previews.

🚀 Getting Started

To integrate the library into your project, use the following command:

npm install @silurus/ooxml

Quick Capabilities Checklist:

  • Switch between different file formats
  • Navigate through pages or slides
  • Scroll through expansive spreadsheets
  • Zoom and search within documents

OOXML Viewer Demo


📊 Format Support Matrix

While complex documents may still exhibit slight differences compared to the native Microsoft Office suite, the library supports a vast array of features.

Feature.docx (Word).xlsx (Excel).pptx (PowerPoint)
LayoutPaginated, headers, footers, sectionsMulti-sheet, frozen panes, outlinesSlide masters & layout inheritance
Tables/DataComplex borders, fills, merged cellsCached formulas, dates, number formatsTable text selection
VisualsInline/anchored images, DrawingMLClassic charts, sparklines, conditional formattingPreset/custom shapes, SmartArt, 3D shading
AdvancedCJK typography (ruby, vertical writing)Pivot metadata, CJK cell textWordArt, embedded fonts, audio/video
SpecialtyMath equations, tracked changesTSV copy, internal linksClassic combo & stock charts
RenderingProgressive virtualized scrollRange/element contextProgressive virtualized scroll
ImagesOptional TIFF decodingOptional TIFF decodingOptional TIFF decoding

📢 Latest Announcements

Stay updated with the most recent release and migration notes.

Version History

  • v0.84.1 (Sep 1, 2026):
    • Word Layout Improvements: Refined spacing for legacy text-boxes.
    • Stability: Page-break behavior is now more strictly aligned with original Word document designs.
  • v0.84.0 (Sep 1, 2026):
    • TIFF Support: Introduced an opt-in feature to display TIFF images across all three supported formats.
    • Note: This is enabled by default in the VS Code extension.
  • v0.83.0 (Aug 28, 2026):
    • Performance: Large .docx and .pptx files now load initial pages/slides faster.
    • Optimization: Increased speed for large Word tables.
    • Fonts: Now utilizes embedded PowerPoint fonts when available.

For more details, visit the GitHub Repository or check the full support matrix in the README.