FreeDotnetPOI 2.7.11
dotnet add package FreeDotnetPOI --version 2.7.11
NuGet\Install-Package FreeDotnetPOI -Version 2.7.11
<PackageReference Include="FreeDotnetPOI" Version="2.7.11" />
<PackageVersion Include="FreeDotnetPOI" Version="2.7.11" />
<PackageReference Include="FreeDotnetPOI" />
paket add FreeDotnetPOI --version 2.7.11
#r "nuget: FreeDotnetPOI, 2.7.11"
#:package FreeDotnetPOI@2.7.11
#addin nuget:?package=FreeDotnetPOI&version=2.7.11
#tool nuget:?package=FreeDotnetPOI&version=2.7.11
FreeDotnetPOI is a community-maintained fork of NPOI 2.7.6, the last release published under the Apache License 2.0. NPOI 2.8.0 and later are released under a different license; this fork continues the Apache-2.0 2.7.x line, keeping dependencies current and fixing security vulnerabilities.
It reads and writes xls (Excel 97-2003), xlsx (Excel 2007+) and docx (Word 2007+) files. Supported frameworks: .NET 8+ (with a dedicated .NET 10 build), .NET Standard 2.0/2.1 and .NET Framework 4.7.2+.
Switching from NPOI 2.7.x
Assembly names, namespaces (NPOI.*) and the strong-name key are unchanged, so it is a drop-in replacement for the NPOI 2.7.x package.
- Replace the
NPOIpackage reference withFreeDotnetPOI. Don't reference both packages in the same project. - If your project references
SixLabors.ImageSharpdirectly, replace it with FreeDotnetImageSharp. - If your project references
SixLabors.Fontsdirectly, replace it with FreeDotnetFonts. - If your code drives
XSSFSheetXMLHandlerorReadOnlySharedStringsTablewith NSax types itself, switch toNPOI.XSSF.EventUserModel.SaxandSaxParser.Parse(stream, handler), and catchSystem.Xml.XmlExceptioninstead ofSAXException.
Differences from NPOI 2.7.6
- Image handling uses FreeDotnetImageSharp 2.1.15 instead of
SixLabors.ImageSharp2.1.11. It is an Apache-2.0 fork of ImageSharp 2.1.13 that fixes GHSA-j9gm-c75j-xc9q, GHSA-jjfr-hcj7-qf5w, GHSA-j3p4-wp97-rph4, GHSA-gwg2-r3hj-4w44 and GHSA-wmxv-xphr-5c9g, and hardens ICC profile parsing. It provides the sameSixLabors.ImageSharpassembly and namespaces. - Text measurement uses FreeDotnetFonts 1.0.2 instead of
SixLabors.Fonts1.0.1 (same code under Apache-2.0, sameSixLabors.Fontsassembly). FreeDotnetPOI does not depend on any Six Labors package. System.Security.Cryptography.Xmlis updated to 8.0.5 andSystem.Formats.Asn1to 8.0.2 (security fixes).- The streaming XSSF reader uses its own
XmlReader-based SAX layer (NPOI.XSSF.EventUserModel.Sax) instead of the LGPL-3.0NSaxpackage. It never resolves external entities. All dependencies are under the MIT or Apache-2.0 license. - Fixed data loss when opening an OOXML file that can't be opened as a zip file right away (for example, briefly locked by another process). The fallback path truncated the file to 0 bytes instead of reading it.
- Temp file names are GUID-based, so processes creating temp files at the same moment no longer collide.
Release notes: https://github.com/rickygzz/FreeDotnetPOI/releases
Source and issues: https://github.com/rickygzz/FreeDotnetPOI
Credit to Tony Qu and the NPOI contributors for the original work. This project is not affiliated with or endorsed by Nissl Lab or 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 is compatible. 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 is compatible. 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 is compatible. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 is compatible. 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. |
-
.NETFramework 4.7.2
- BouncyCastle.Cryptography (>= 2.6.2)
- Enums.NET (>= 5.0.0)
- ExtendedNumerics.BigDecimal (>= 2025.1001.2.129)
- FreeDotnetFonts (>= 1.0.2)
- FreeDotnetImageSharp (>= 2.1.15)
- MathNet.Numerics.Signed (>= 5.0.0)
- Microsoft.IO.RecyclableMemoryStream (>= 3.0.1)
- SharpZipLib (>= 1.4.2)
- System.Security.Cryptography.Xml (>= 8.0.5)
- ZString (>= 2.6.0)
-
.NETStandard 2.0
- BouncyCastle.Cryptography (>= 2.6.2)
- Enums.NET (>= 5.0.0)
- ExtendedNumerics.BigDecimal (>= 2025.1001.2.129)
- FreeDotnetFonts (>= 1.0.2)
- FreeDotnetImageSharp (>= 2.1.15)
- MathNet.Numerics.Signed (>= 5.0.0)
- Microsoft.IO.RecyclableMemoryStream (>= 3.0.1)
- SharpZipLib (>= 1.4.2)
- System.Security.Cryptography.Xml (>= 8.0.5)
- ZString (>= 2.6.0)
-
.NETStandard 2.1
- BouncyCastle.Cryptography (>= 2.6.2)
- Enums.NET (>= 5.0.0)
- ExtendedNumerics.BigDecimal (>= 2025.1001.2.129)
- FreeDotnetFonts (>= 1.0.2)
- FreeDotnetImageSharp (>= 2.1.15)
- MathNet.Numerics.Signed (>= 5.0.0)
- Microsoft.IO.RecyclableMemoryStream (>= 3.0.1)
- SharpZipLib (>= 1.4.2)
- System.Security.Cryptography.Xml (>= 8.0.5)
- ZString (>= 2.6.0)
-
net10.0
- BouncyCastle.Cryptography (>= 2.6.2)
- Enums.NET (>= 5.0.0)
- ExtendedNumerics.BigDecimal (>= 2025.1001.2.129)
- FreeDotnetFonts (>= 1.0.2)
- FreeDotnetImageSharp (>= 2.1.15)
- MathNet.Numerics.Signed (>= 5.0.0)
- Microsoft.IO.RecyclableMemoryStream (>= 3.0.1)
- SharpZipLib (>= 1.4.2)
- System.Security.Cryptography.Xml (>= 8.0.5)
- ZString (>= 2.6.0)
-
net8.0
- BouncyCastle.Cryptography (>= 2.6.2)
- Enums.NET (>= 5.0.0)
- ExtendedNumerics.BigDecimal (>= 2025.1001.2.129)
- FreeDotnetFonts (>= 1.0.2)
- FreeDotnetImageSharp (>= 2.1.15)
- MathNet.Numerics.Signed (>= 5.0.0)
- Microsoft.IO.RecyclableMemoryStream (>= 3.0.1)
- SharpZipLib (>= 1.4.2)
- System.Security.Cryptography.Xml (>= 8.0.5)
- ZString (>= 2.6.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.