Features and technical overview

EPPlus, the .NET engine for Excel workbooks

Create, read, modify and calculate Excel workbooks in 100% managed .NET code. Import and export data in many formats. No Microsoft Excel required.

// EPPlus 8: set the license once at startup
ExcelPackage.License.SetNonCommercialPersonal("Your name");

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

sheet.Cells["A1"].LoadFromCollection(
    orders, true, TableStyles.Medium2);
sheet.Cells["F2"].Formula = "SUM(D2:D100)";
package.Workbook.Calculate();

package.SaveAs("sales.xlsx");
478
Excel functions in the built-in calculation engine
760,000
Cells written per second
How we measured
73
Countries with EPPlus customers
17
Years of active development, open source since 2009 and commercial since 2020

Features supported

EPPlus is a .NET Framework/.NET Core library for managing Office Open XML spreadsheets, distributed via Nuget . See our Software Bill Of Material page for supported .NET frameworks. EPPlus is entirely written in managed code and has no dependencies on any other library such as Microsoft Excel.

The library is designed with the developer in mind. Our goal has always been that a developer with knowledge of Excel or any other spreadsheet library should easily get up to speed with the API. Or - as someone said - intellisense your way to victory!

Formulas & filters

A built-in calculation engine with no dependency on Excel or any other library, plus filters and slicers.

Show all featuresShow fewer
Read the guide: Formulas & filters

Worksheets & ranges

Rows, columns and cells, and everything you do with them.

Show all featuresShow fewer
  • Add, remove, reorder, rename and hide worksheets
  • Print areas, page breaks, document and printer settings
  • Headers and footers
  • Worksheet properties such as gridlines and tab colors
  • Named ranges
  • Used range and taking and skipping rows and columns
  • Sort top to bottom or left to right, with custom lists, and the sort state is updated
  • FillNumber, FillDateTime and FillList
  • Copy styles only, or exclude cell properties when copying
  • Row and column access via EntireRow and EntireColumn
  • Hyperlinks
  • Notes with rich text, and threaded comments with mentions and resolve/re-open
  • Query cells and ranges with LINQ
  • Validation types: integer, decimal, list, date, time, any and custom
Read the guide: Worksheets & ranges

Tables & pivot tables

Formatted tables and pivot tables, including pivot table calculation.

Show all featuresShow fewer
Read the guide: Tables & pivot tables

Charts & drawing objects

Charts, shapes, pictures, form controls and other drawing objects.

Show all featuresShow fewer
Read the guide: Charts & drawing objects

Styling

Cell styles, conditional formatting and themes.

Show all featuresShow fewer
Read the guide: Styling

Import & export data

Move data in and out of worksheets with one line of code.

  • Import from collections, arrays, DataTables, DataReaders and dictionaries
  • Export to CSV, JSON, DataTable or IEnumerable<T>
  • Load and save files, streams and byte arrays, with async/await
  • Read and write CSV and other text files via LoadFromText and SaveToText, also fixed-width
Show all featuresShow fewer
  • Attributes on your classes control styling, number formats and formulas when loading collections
  • Fixed-width text files, via LoadFromText and ToText
  • Write to a web response stream without file access
  • Templates
  • Reads and writes xlsx and xlsm. The xlsx Strict format is not supported.
  • Reads xltx, crtx and thmx
  • External connections and query tables: Power Query, database, OLAP, web and text connections, and pivot tables with an external connection as source
Read the guide: Import & export data

Output formats

Render worksheet content as HTML for web pages, with PDF on the way.

Show all featuresShow fewer
Read the guide: Output formats

VBA & protection

Protection, encryption, signatures, sensitivity labels and macros.

Show all featuresShow fewer
  • Sensitivity labels via Microsoft Information Protection
  • Open password protected workbooks
  • Standard encryption for older Office versions, Agile for Office 2010 and later
  • VBA signatures: Legacy, Agile and V3, with five hash algorithms
Read the guide: VBA & protection

Performance with large workbooks

A 63 MB workbook with 200 columns and 100,000 rows, where half of the cells contain integers and half contain strings of 36 characters.

EPPlus 8.7.2, Intel Core i9-12900HK (14 cores, 2.5 GHz), 64 GB RAM, NVMe SSD, Windows 11, .NET 10

View the source code for the test
26.2 s
Create the workbook and save it to disk
15.7 s
Load the workbook from disk

Ready to start?

A battle-hardened codebase after many years as the world's most downloaded .NET library for spreadsheets, with quality ensured by thousands of unit tests.

The source code for EPPlus is openly available on GitHub , distributed under the Polyform Noncommercial license.

See this page for features added to the library from version 5 and up.