DotnetPoi.Ooxml
1.0.1
dotnet add package DotnetPoi.Ooxml --version 1.0.1
NuGet\Install-Package DotnetPoi.Ooxml -Version 1.0.1
<PackageReference Include="DotnetPoi.Ooxml" Version="1.0.1" />
<PackageVersion Include="DotnetPoi.Ooxml" Version="1.0.1" />
<PackageReference Include="DotnetPoi.Ooxml" />
paket add DotnetPoi.Ooxml --version 1.0.1
#r "nuget: DotnetPoi.Ooxml, 1.0.1"
#:package DotnetPoi.Ooxml@1.0.1
#addin nuget:?package=DotnetPoi.Ooxml&version=1.0.1
#tool nuget:?package=DotnetPoi.Ooxml&version=1.0.1
DotnetPoi.Ooxml
OOXML implementations for xlsx, docx, pptx, and macro-enabled Office 2007+ formats.
Install
dotnet add package DotnetPoi.Ooxml
<PackageReference Include="DotnetPoi.Ooxml" Version="..." />
NuGet automatically resolves transitive dependencies (DotnetPoi.Common, DotnetPoi.POIFS).
Support Status
DotnetPoi.Ooxml is the stable package for practical OOXML workflows:
| Format | Implementation | Status | Description |
|---|---|---|---|
| xlsx / xlsm | XSSF | ✅ Practical (~78%) | Workbook creation/read/edit, styles, layout, images, formulas-as-text, macro preservation, and Java POI interop slices. |
| docx / docm | XWPF | ✅ Practical (~65%) | Paragraphs/runs, tables, sections, headers/footers, images, fields, text boxes, macro preservation, and loss-resistant round-trips. |
| pptx / pptm | XSLF | ⚠️ Practical basic (~40%) | Slides, text, pictures, tables, slide size, layout references, macro preservation, and preservation of many advanced parts. |
XSSF comments
xlsx cell comments support common read/create/edit/remove workflows through XSSFComment, cell/sheet lookup, and VML/comment part read/write. Rich comment formatting and VML shape styling are intentionally minimal and are not byte-for-byte POI-compatible.
XWPF comments
Existing docx comments are preserved on round-trip through package part preservation. A minimal API exposes XWPFComment metadata/text plus document lookup, paragraph/run reference ids, metadata/text editing, and paragraph range comment creation. Rich comment body content, arbitrary range editing, and cleanup-heavy marker deletion remain limited.
XWPF tracked changes
Tracked-change XML (w:ins, w:del, move ranges, etc.) is preserved in body/paragraph child order during round-trip. This is preservation-only: accept/reject/create/edit APIs for revisions are not modeled.
Usage scenarios
| If you need… | Install this |
|---|---|
| xlsx / docx / pptx read/write only | DotnetPoi.Ooxml (this package) |
| OOXML + formula evaluator | DotnetPoi.Ooxml + DotnetPoi.Formula |
| OOXML + legacy binary (xls/doc/ppt) | DotnetPoi.Ooxml + DotnetPoi.Legacy |
| Everything (all formats + formula) | DotnetPoi.All (meta-package) |
License
Apache License 2.0 — same as upstream Apache POI.
Disclaimer
This project is not affiliated with the Apache Software Foundation or the Apache POI project. Apache POI is a registered trademark of the Apache Software Foundation.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- DotnetPoi.Common (>= 1.0.0)
- DotnetPoi.POIFS (>= 1.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on DotnetPoi.Ooxml:
| Package | Downloads |
|---|---|
|
DotnetPoi.All
Meta package shell for the complete DotnetPoi surface: OOXML, legacy binary formats, POIFS, and Formula. |
GitHub repositories
This package is not used by any popular GitHub repositories.