SkillAgentSearch skills...

OfficeIMO

Fast and easy to use cross-platform .NET library that creates or modifies Microsoft Word (DocX) and later also Excel (XLSX) files without installing any software. Library is based on Open XML SDK

Install / Use

/learn @EvotecIT/OfficeIMO
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

OfficeIMO — Open XML utilities for .NET

CI codecov license

If you would like to contact me you can do so via Twitter or LinkedIn.

twitter blog linked discord

OfficeIMO is a family of lightweight .NET libraries for working with Office and document-related formats without Office automation or COM.

  • Word: create and edit .docx documents with a friendly object model
  • Excel: read/write worksheets, tables, ranges, styles, and reports
  • CSV: schema-aware CSV model with typed mapping and streaming helpers
  • PowerPoint: generate .pptx slides programmatically
  • Visio: basic .vsdx generation helpers
  • Markdown: builder, typed reader/AST, HTML rendering, and host-oriented rendering helpers
  • Reader: read-only extraction facade for ingestion scenarios

Each package is shipped independently under the MIT license unless noted otherwise.

Project READMEs

Website

Package Families

Word family

  • OfficeIMO.Word: main Word document object model
  • OfficeIMO.Word.Html: HTML conversion helpers
  • OfficeIMO.Word.Markdown: Markdown conversion helpers
  • OfficeIMO.Word.Pdf: PDF export helpers

Google Workspace family

  • OfficeIMO.GoogleWorkspace: shared credential, session, Drive location, retry, and translation-report abstractions
  • OfficeIMO.Word.GoogleDocs: Word to Google Docs planning, batch compilation, and export helpers
  • OfficeIMO.Excel.GoogleSheets: Excel to Google Sheets planning, batch compilation, and export helpers

Markdown family

  • OfficeIMO.Markdown: markdown builder, typed reader/AST, HTML renderer, front matter, TOC, callouts, and query helpers
  • OfficeIMO.Markdown.Html: HTML-to-Markdown AST bridge targeting the OfficeIMO.Markdown document model
  • OfficeIMO.MarkdownRenderer: WebView/browser-friendly rendering shell and incremental update helpers
  • OfficeIMO.MarkdownRenderer.Wpf: reusable WPF/WebView2 MarkdownView host layered on top of the generic renderer
  • OfficeIMO.MarkdownRenderer.IntelligenceX: first-party IntelligenceX plugin pack layered on top of the generic renderer
  • OfficeIMO.MarkdownRenderer.SamplePlugin: sample third-party-style plugin pack showing shared visual host rendering plus HTML round-trip hints
  • OfficeIMO.Markdown.Benchmarks: representative parse/render benchmark harness

Other packages

  • OfficeIMO.Excel: workbook, worksheet, table, style, and reporting helpers
  • OfficeIMO.CSV: typed CSV read/write and schema workflows
  • OfficeIMO.PowerPoint: programmatic slide generation
  • OfficeIMO.Visio: basic diagram generation
  • OfficeIMO.Reader: unified read-only extraction facade for ingestion workflows

Targets

  • Word, PowerPoint, Visio: netstandard2.0, net472, net8.0, net10.0
  • Excel, CSV: netstandard2.0, net472, net8.0, net10.0
  • Markdown, MarkdownRenderer: netstandard2.0, net472, net8.0, net10.0
  • MarkdownRenderer.Wpf: net472, net8.0-windows, net10.0-windows for the WPF/WebView2 surface, plus shared helper code on net8.0 and net10.0 for cross-platform validation/tests

AOT / Trimming

  • Reflection-heavy convenience APIs remain available for dynamic and PowerShell scenarios.
  • For trimming-sensitive workloads, prefer typed overloads and explicit selectors.
  • OfficeIMO.Markdown and OfficeIMO.MarkdownRenderer are designed to stay lightweight and predictable for embedded/document-host scenarios.

Dependencies at a glance

Arrows point from a package to what it depends on.

Word

flowchart TB
  WCore["OfficeIMO.Word"]
  subgraph Extensions
    WHtml["OfficeIMO.Word.Html"]
    WMd["OfficeIMO.Word.Markdown"]
    WPdf["OfficeIMO.Word.Pdf"]
  end

  Angle["AngleSharp"]
  AngleCss["AngleSharp.Css"]
  Md["OfficeIMO.Markdown"]
  MdHtml["OfficeIMO.Markdown.Html"]
  Quest["QuestPDF"]
  Skia["SkiaSharp"]

  WHtml --> WCore
  WMd --> WCore
  WPdf --> WCore

  WMd --> WHtml
  WHtml --> Angle
  WHtml --> AngleCss
  MdHtml --> Md
  WMd --> Md
  WPdf --> Quest
  WPdf --> Skia

Converters ship in-repo and continue to evolve before broader release packaging decisions.

Markdown

flowchart TB
  Md["OfficeIMO.Markdown"]
  MdHtml["OfficeIMO.Markdown.Html"]
  MdRenderer["OfficeIMO.MarkdownRenderer"]
  MdRendererWpf["OfficeIMO.MarkdownRenderer.Wpf"]
  MdRendererIx["OfficeIMO.MarkdownRenderer.IntelligenceX"]
  MdRendererSample["OfficeIMO.MarkdownRenderer.SamplePlugin"]
  MdBench["OfficeIMO.Markdown.Benchmarks"]
  WordMd["OfficeIMO.Word.Markdown"]
  Json["System.Text.Json"]
  WebView2["Microsoft.Web.WebView2"]

  MdHtml --> Md
  MdRenderer --> Md
  MdRenderer --> MdHtml
  MdRendererWpf --> MdRenderer
  MdRendererWpf --> WebView2
  MdRendererIx --> MdRenderer
  MdRendererSample --> MdRenderer
  MdRenderer --> Json
  MdBench --> Md
  WordMd --> Md

Excel

flowchart TD
  Xl["OfficeIMO.Excel"]
  OXml["DocumentFormat.OpenXml"]
  ImgSharp["SixLabors.ImageSharp"]
  Fonts["SixLabors.Fonts"]

  Xl --> OXml
  Xl --> ImgSharp
  Xl --> Fonts

PowerPoint

flowchart TD
  Ppt["OfficeIMO.PowerPoint"]
  OXml["DocumentFormat.OpenXml"]

  Ppt --> OXml

Visio

flowchart TD
  Vsdx["OfficeIMO.Visio"]
  ImgSharp["SixLabors.ImageSharp"]
  Pkg["System.IO.Packaging"]

  Vsdx --> ImgSharp
  Vsdx --> Pkg

When do I need what?

  • Creating or editing Word documents: add OfficeIMO.Word
  • Word to HTML: add OfficeIMO.Word + OfficeIMO.Word.Html
  • Word to Markdown or Markdown to Word: add OfficeIMO.Word + OfficeIMO.Word.Markdown
  • Word to PDF: add OfficeIMO.Word + OfficeIMO.Word.Pdf
  • Building or parsing Markdown directly: add OfficeIMO.Markdown
  • Hosting Markdown in WebView2 or a browser shell: add OfficeIMO.MarkdownRenderer
  • Hosting Markdown in a WPF desktop app with WebView2: add OfficeIMO.MarkdownRenderer.Wpf
  • Hosting IntelligenceX transcript/chat surfaces on top of the generic renderer: add OfficeIMO.MarkdownRenderer.IntelligenceX
  • Benchmarking markdown parse/render behavior before release: use OfficeIMO.Markdown.Benchmarks
  • Excel read/write and reporting: add OfficeIMO.Excel
  • Shared Google Workspace session/auth primitives: add OfficeIMO.GoogleWorkspace
  • Word to Google Docs planning or export: add OfficeIMO.Word + OfficeIMO.Word.GoogleDocs
  • Excel to Google Sheets planning or export: add OfficeIMO.Excel + OfficeIMO.Excel.GoogleSheets
  • CSV schemas and typed CSV workflows: add OfficeIMO.CSV
  • PowerPoint slides: add OfficeIMO.PowerPoint
  • Visio diagrams: add OfficeIMO.Visio

Markdown Release Prep

For the current markdown package line:

Dependency versions (high level)

  • DocumentFormat.OpenXml: 3.3.x (conservative version ranges)
  • SixLabors.ImageSharp / SixLabors.Fonts: Excel and image-centric packages
  • AngleSharp / AngleSharp.Css: HTML conversion layers
  • QuestPDF / SkiaSharp: PDF conversion layers
  • System.Text.Json: markdown renderer host helpers

See each project .csproj for exact package ranges.

Licenses

  • OfficeIMO.Word, OfficeIMO.Excel, OfficeIMO.CSV, OfficeIMO.PowerPoint, OfficeIMO.Markdown, OfficeIMO.MarkdownRenderer, OfficeIMO.MarkdownRenderer.Wpf, OfficeIMO.Markdown.Html, OfficeIMO.Word.Html, OfficeIMO.Word.Markdown, OfficeIMO.Word.Pdf: MIT
  • OfficeIMO.Visio: license still being finalized

Third-party dependency licenses are gover

View on GitHub
GitHub Stars447
CategoryDevelopment
Updated11m ago
Forks63

Languages

C#

Security Score

100/100

Audited on Apr 2, 2026

No findings