EPPlus.Core.CoreCompat 2.0.1

dotnet add package EPPlus.Core.CoreCompat --version 2.0.1
                    
NuGet\Install-Package EPPlus.Core.CoreCompat -Version 2.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="EPPlus.Core.CoreCompat" Version="2.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="EPPlus.Core.CoreCompat" Version="2.0.1" />
                    
Directory.Packages.props
<PackageReference Include="EPPlus.Core.CoreCompat" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add EPPlus.Core.CoreCompat --version 2.0.1
                    
#r "nuget: EPPlus.Core.CoreCompat, 2.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package EPPlus.Core.CoreCompat@2.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=EPPlus.Core.CoreCompat&version=2.0.1
                    
Install as a Cake Addin
#tool nuget:?package=EPPlus.Core.CoreCompat&version=2.0.1
                    
Install as a Cake Tool
╔══════════════════════════════════════════════════════════════════╗
║                                                                  ║
║   ███████╗██████╗ ██████╗ ██╗     ██╗   ██╗███████╗            ║
║   ██╔════╝██╔══██╗██╔══██╗██║     ██║   ██║██╔════╝            ║
║   █████╗  ██████╔╝██████╔╝██║     ██║   ██║███████╗            ║
║   ██╔══╝  ██╔═══╝ ██╔═══╝ ██║     ██║   ██║╚════██║            ║
║   ███████╗██║     ██║     ███████╗╚██████╔╝███████║            ║
║   ╚══════╝╚═╝     ╚═╝     ╚══════╝ ╚═════╝ ╚══════╝            ║
║                                                                  ║
║        C O R E  ·  C O R E C O M P A T                         ║
║        Excel for modern .NET — without the pain                 ║
║                                                                  ║
╚══════════════════════════════════════════════════════════════════╝

NuGet NuGet Downloads Build License: LGPL v2.1 .NET Docs


Why You Need This

The original EPPlus library is locked to .NET Framework. Later forks added .NET Core support via the CoreCompat.System.Drawing shim — but that package is abandoned and broken on modern runtimes.

EPPlus.Core.CoreCompat is the community-maintained drop-in that works today:

  Legacy world                        This package
  ────────────                        ────────────
  EPPlus (full .NET only)             ✔  .NET Standard 2.0
  EPPlus.Core (CoreCompat shim)  →       Works on Windows, Linux, macOS
  VahidN/EPPlus.Core (abandoned)         No Windows-only lock-in

.NET Standard 2.0 — cross-platform by design. Runs on .NET Core, .NET Framework, Mono, Unity, Xamarin.


What You Can Do

EPPlus.Core.CoreCompat
│
├── Workbooks & Worksheets
│   ├── Create / open / save .xlsx files
│   ├── Multiple sheets, named ranges, freeze panes
│   └── Worksheet protection & workbook encryption
│
├── Cells & Ranges
│   ├── Read / write values, formulas, hyperlinks
│   ├── Merge cells, auto-fit columns & rows
│   └── Copy / move ranges between sheets
│
├── Styles & Formatting
│   ├── Fonts  (name, size, bold, italic, color, underline)
│   ├── Fills  (solid, gradient, pattern)
│   ├── Borders (style, color, all sides)
│   ├── Number formats (dates, currency, custom)
│   └── Conditional formatting rules
│
├── Charts  (embedded in the worksheet)
│   ├── Line, Bar, Column, Area
│   ├── Pie, Doughnut, Scatter, Bubble
│   └── Combination charts & chart series
│
├── Tables & Pivot Tables
│   ├── Excel ListObject tables with auto-filter
│   └── PivotTable with grouping & calculated fields
│
├── Formulas
│   ├── 300+ built-in Excel functions evaluated server-side
│   └── Array formulas & cross-sheet references
│
└── Data Import / Export
    ├── Load from IEnumerable<T> / DataTable
    └── Export to CSV, print-ready layout

Install

dotnet add package EPPlus.Core.CoreCompat

or in the Package Manager Console:

Install-Package EPPlus.Core.CoreCompat

Quick Examples

Create a workbook

using OfficeOpenXml;
using System.IO;

// No license key needed for this community fork
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;

using var package = new ExcelPackage();
var sheet = package.Workbook.Worksheets.Add("Sales");

// Headers
sheet.Cells[1, 1].Value = "Product";
sheet.Cells[1, 2].Value = "Q1";
sheet.Cells[1, 3].Value = "Q2";
sheet.Cells[1, 4].Value = "Total";

// Data rows
string[][] rows = [["Widget A", "1200", "1500"], ["Widget B", "800", "950"]];
for (int r = 0; r < rows.Length; r++)
{
    sheet.Cells[r + 2, 1].Value = rows[r][0];
    sheet.Cells[r + 2, 2].Value = int.Parse(rows[r][1]);
    sheet.Cells[r + 2, 3].Value = int.Parse(rows[r][2]);
    sheet.Cells[r + 2, 4].Formula = $"B{r+2}+C{r+2}";
}

// Style the header row
using (var header = sheet.Cells[1, 1, 1, 4])
{
    header.Style.Font.Bold = true;
    header.Style.Fill.PatternType = ExcelFillStyle.Solid;
    header.Style.Fill.BackgroundColor.SetColor(Color.DarkBlue);
    header.Style.Font.Color.SetColor(Color.White);
}

sheet.Cells.AutoFitColumns();
package.SaveAs(new FileInfo("sales.xlsx"));

Read an existing file

using var package = new ExcelPackage(new FileInfo("sales.xlsx"));
var sheet = package.Workbook.Worksheets[0];

int rows = sheet.Dimension.Rows;
for (int r = 2; r <= rows; r++)
{
    Console.WriteLine($"{sheet.Cells[r,1].Value}  Q1={sheet.Cells[r,2].Value}");
}

Load from a list

var data = new List<Order>
{
    new() { Id = 1, Product = "Widget A", Amount = 120.50m },
    new() { Id = 2, Product = "Widget B", Amount = 89.99m },
};

sheet.Cells["A1"].LoadFromCollection(data, printHeaders: true);

Add a chart

var chart = sheet.Drawings.AddChart("SalesChart", eChartType.ColumnClustered);
chart.Title.Text = "Quarterly Sales";
chart.SetPosition(5, 0, 1, 0);
chart.SetSize(600, 300);
var series = chart.Series.Add(sheet.Cells["B2:C3"], sheet.Cells["A2:A3"]);
series.Header = "Revenue";

Framework Support

Target Status Compatible runtimes
.NET Standard 2.0 ✔ Full .NET Core 2.0+, .NET 5/6/7/8/9, .NET Framework 4.6.1+, Mono

Cross-platform by design. The netstandard2.0 target means one binary runs everywhere — Windows, Linux, and macOS — without any platform-specific lock-in.


License

Licensed under the GNU Lesser General Public License v2.1. This is a community fork. The original EPPlus project lives at JanKallman/EPPlus.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.0.1 55 2/28/2026
1.5.6 37,645 3/18/2019
1.5.5 779 3/18/2019