EPPlus.Core.Extensions 3.1.0

dotnet add package EPPlus.Core.Extensions --version 3.1.0
 
NuGet\Install-Package EPPlus.Core.Extensions -Version 3.1.0
 
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.Extensions" Version="3.1.0" />
 
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="EPPlus.Core.Extensions" Version="3.1.0" />
 
Directory.Packages.props
<PackageReference Include="EPPlus.Core.Extensions" />
 
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.Extensions --version 3.1.0
 
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: EPPlus.Core.Extensions, 3.1.0"
 
#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.Extensions@3.1.0
 
#: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.Extensions&version=3.1.0
 
Install as a Cake Addin
#tool nuget:?package=EPPlus.Core.Extensions&version=3.1.0
 
Install as a Cake Tool
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

EPPlus.Core.Extensions CI

Installation NuGet version

PM> Install-Package EPPlus.Core.Extensions

Dependencies

.NET 10.0EPPlus >= 8.5.3

License Setup

EPPlus 8 requires a license declaration before use. For non-commercial/personal projects:

ExcelPackage.License.SetNonCommercialPersonal("YourName");

For commercial use, see EPPlus licensing.

Features

  • Converts IEnumerable<T> into an Excel worksheet or package
  • Reads data from Excel packages and converts them into a List<T>
  • Supports data annotations for validation ([Required], [MaxLength], [Range], etc.)
  • Fluent API for building multi-worksheet workbooks
  • Generates Excel templates from classes marked with [ExcelWorksheet]

Examples

Mapping a class to Excel columns

Use [ExcelTableColumn] to map properties to Excel columns by name or index:

public class PersonDto
{
 [ExcelTableColumn("First name")]
 [Required(ErrorMessage = "First name cannot be empty.")]
 [MaxLength(50, ErrorMessage = "First name cannot be more than {1} characters.")]
 public string FirstName { get; set; }
 [ExcelTableColumn(columnName = "Last name", isOptional = true)]
 public string LastName { get; set; }
 [ExcelTableColumn(3)]
 [Range(1900, 2050, ErrorMessage = "Please enter a value bigger than {1}")]
 public int YearBorn { get; set; }
 public decimal NotMapped { get; set; }
 [ExcelTableColumn(isOptional = true)]
 public decimal OptionalColumn1 { get; set; }
 [ExcelTableColumn(columnIndex = 999, isOptional = true)]
 public decimal OptionalColumn2 { get; set; }
}
Reading Excel data into a list
// From the first worksheet:
List<PersonDto> persons = excelPackage.ToList<PersonDto>(c => c.SkipCastingErrors());
// From a named worksheet:
List<PersonDto> persons = excelPackage.GetWorksheet("Persons").ToList<PersonDto>();
Writing a list to an Excel package
// Convert to ExcelPackage
ExcelPackage excelPackage = persons.ToExcelPackage();
// Convert to byte array
byte[] xlsx = persons.ToXlsx();
// Fluent multi-worksheet builder
List<PersonDto> pre50 = persons.Where(x => x.YearBorn < 1950).ToList();
List<PersonDto> post50 = persons.Where(x => x.YearBorn >= 1950).ToList();
ExcelPackage excelPackage = pre50.ToWorksheet("< 1950")
 .WithConfiguration(c => c.WithColumnConfiguration(x => x.AutoFit()))
 .WithColumn(x => x.FirstName, "First Name")
 .WithColumn(x => x.LastName, "Last Name")
 .WithColumn(x => x.YearBorn, "Year of Birth")
 .WithTitle("< 1950")
 .NextWorksheet(post50, "> 1950")
 .WithColumn(x => x.LastName, "Last Name")
 .WithColumn(x => x.YearBorn, "Year of Birth")
 .WithTitle("> 1950")
 .ToExcelPackage();
Generating an Excel template from a class

Mark a class with [ExcelWorksheet] to generate a structured template:

[ExcelWorksheet("Stocks")]
public class StocksDto
{
 [ExcelTableColumn("SKU")]
 public string Barcode { get; set; }
 [ExcelTableColumn]
 public int Quantity { get; set; }
}
// Generate as ExcelPackage
ExcelPackage excelPackage = Assembly.GetExecutingAssembly().GenerateExcelPackage(nameof(StocksDto));
// Generate as ExcelWorksheet inside an existing package
using var excelPackage = new ExcelPackage();
ExcelWorksheet worksheet = excelPackage.GenerateWorksheet(Assembly.GetExecutingAssembly(), nameof(StocksDto));
Product Compatible and additional computed target framework versions.
.NET 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.
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (11)

Showing the top 5 NuGet packages that depend on EPPlus.Core.Extensions:

Package Downloads
Tradeber.AbpCore.ServiceFabric

tradeber 基础设施库

IvyBaby.Infrastructure

暂无

Alizhou.Office

根据模板导入导出word,execl

FileReaders

Package Description

Farben.Office

Package Description

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on EPPlus.Core.Extensions:

Repository Stars
WeihanLi/WeihanLi.Npoi
NPOI Extensions, excel/csv importer/exporter for IEnumerable<T>/DataTable, fluentapi(great flexibility)/attribute configuration
Version Downloads Last Updated
3.1.0 976 4/18/2026
3.0.4 120 4/18/2026
3.0.3 126 4/18/2026
3.0.2 120 4/18/2026
3.0.1 115 4/18/2026
3.0.0 130 4/18/2026
2.4.0 1,051,546 1/5/2020
2.3.2 95,758 4/8/2019
2.3.1 25,238 3/19/2019
2.3.0 8,095 3/7/2019
2.2.4 43,359 8/9/2018
2.2.3 5,117 6/27/2018
2.2.2 2,310 6/26/2018
2.2.1 6,094 6/5/2018
2.2.0 2,470 6/2/2018
2.1.0 6,834 5/26/2018
2.0.0 4,961 5/16/2018
2.0.0-preview1 1,973 5/15/2018
1.2.8 3,338 4/13/2018
1.2.7 37,570 2/26/2018
Loading failed