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
74
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!

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
  • 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
  • Named ranges
  • 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

Formula calculation

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

  • 478 Excel functions
  • Dynamic array formulas and LAMBDA
  • Calculate a workbook, a worksheet or a single range
  • Add your own functions at runtime
Show all featuresShow fewer
  • Legacy array formulas
  • Precision as displayed: numeric values are rounded according to the number format
  • Named ranges and the R1C1 format
  • External links: update the cache of xlsx, xlsm and xltx workbooks, add references or break links
  • Calculate via the external cache, or by loading and calculating the external workbook
  • OLE and DDE links are retained (read only)
  • More about formula calculation
Read the guide: Formula calculation

Filters & slicers

Create, read, modify, apply and delete filters on ranges and tables.

  • Value, date/time, custom, top 10 and dynamic filters
  • Table and pivot table slicers
  • 14 built-in slicer styles
  • Custom slicer styles, from scratch or based on a built-in style
Read the guide: Filters & slicers

Tables & pivot tables

Formatted tables and pivot tables, including pivot table calculation.

  • 60 table styles and 84 pivot table styles, or your own custom styles
  • Total rows, sorting and filters, and adding or deleting rows and columns with shifting
  • Pivot table calculation and GETPIVOTDATA
  • Export tables to DataTable, JSON, HTML/CSS or IEnumerable<T>
Show all featuresShow fewer
Read the guide: Tables & pivot tables

Charts & sparklines

Every Excel 2019 chart type, with modern styling.

Read the guide: Charts & sparklines

Pictures, shapes & controls

Drawing objects on the worksheet and inside cells.

Show all featuresShow fewer
  • Add pictures from files, streams or byte arrays
  • In-cell pictures can be marked as decorative; formats png, jpg, gif, bmp, webp and ico
  • OLE objects, linked or embedded, with custom icons
Read the guide: Pictures, shapes & controls

Styling

Cell styles, conditional formatting and themes.

Read the guide: Styling

Import, export & formats

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

  • Import from collections, arrays, DataSets, DataReaders and text files into formatted tables
  • Export to CSV, JSON, HTML/CSS, DataTable, IEnumerable<T> or streams
  • Load and save files, streams and byte arrays, with async/await
  • External connections and query tables
Show all featuresShow fewer
  • 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
  • Reads and writes txt and csv via LoadFromText and SaveToText
  • Power Query, database, OLAP, web and text connections, and pivot tables with an external connection as source
Read the guide: Import, export & formats

Security & VBA

Protection, encryption, signatures and macros.

Show all featuresShow fewer
  • 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: Security & VBA

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.