Skip to content

A .NET library for mapping Excel data to objects, built on top of EPPlus. Simplifies importing and manipulating Excel data in applications, with filtering and sorting capabilities.

License

ShadyNagy/ExcelObjectMapper

Repository files navigation

publish to nuget ExcelObjectMapper on NuGet NuGet License paypal

ExcelObjectMapper

A simple and efficient .NET library for mapping Excel files to C# objects. This library makes it easy to read Excel files and convert rows to custom C# objects, with minimal code.

Features

  • Read Excel files (.xlsx) with ease
  • Map Excel rows to C# objects
  • Auto-detect column names and map them to C# object properties
  • Easily specify custom column-to-property mappings
  • Supports .NET Standard 2.0 and higher

Getting Started

Installation

Install the ExcelObjectMapper package from NuGet:

Install-Package ExcelObjectMapper

Usage

  1. Create a class that represents the structure of your Excel file:
public class Employee
{
    public int EmployeeId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public DateTime DateOfBirth { get; set; }
}
  1. Read the Excel file and map the rows to the Employee class:
using ExcelObjectMapper.Readers;

// ...

var filePath = "path/to/your/excel-file.xlsx";
var mapping = new Dictionary<string, string>
{
    { "EmployeeId", "Excel ColumnName1" },
    { "FirstName", "Excel ColumnName2" },
    { "LastName", "Excel ColumnName3" },
    { "DateOfBirth", "Excel ColumnName4" }
};

var excelReader = new ExcelReader<Employee>(filePath);
var employees = excelReader.ReadSheet(mapping);

foreach (var employee in employees)
{
    Console.WriteLine($"{employee.EmployeeId}: {employee.FirstName} {employee.LastName}");
}

Examples

Reading Excel file using byte[]

You can read an Excel file directly from a byte array:

using System.IO;
using ExcelObjectMapper.Readers;

byte[] fileBytes = File.ReadAllBytes("path/to/your/excel-file.xlsx");
var mapping = new Dictionary<string, string>
{
    { "EmployeeId", "Excel ColumnName1" },
    { "FirstName", "Excel ColumnName2" },
    { "LastName", "Excel ColumnName3" },
    { "DateOfBirth", "Excel ColumnName4" }
};

var excelReader = new ExcelReader<Employee>(fileBytes);
var employees = excelReader.ReadSheet(mapping);

foreach (var employee in employees)
{
    Console.WriteLine($"{employee.EmployeeId}: {employee.FirstName} {employee.LastName}");
}

Reading Excel file using IFormFile in ASP.NET Core

When working with file uploads in ASP.NET Core, you can use the IFormFile interface to read an Excel file:

using ExcelObjectMapper;
using Microsoft.AspNetCore.Http;

public async Task<IActionResult> Upload(IFormFile file)
{
    var mapping = ExcelMappingHelper.Create()
    .Add("EmployeeId", "Excel ColumnName1")
    .Add("FirstName", "Excel ColumnName2")
    .Add("LastName", "Excel ColumnName3")
    .Add("DateOfBirth", "Excel ColumnName4")
    .Build();
    
    var excelReader = new ExcelReader<Employee>(file);
    var employees = excelReader.ReadSheet(mapping);

    foreach (var employee in employees)
    {
        Console.WriteLine($"{employee.EmployeeId}: {employee.FirstName} {employee.LastName}");
    }

    return Ok("File processed successfully.");
}

These examples demonstrate how you can read Excel files using different input sources with the ExcelObjectMapper library.

For more information, please refer to the documentation.

About

A .NET library for mapping Excel data to objects, built on top of EPPlus. Simplifies importing and manipulating Excel data in applications, with filtering and sorting capabilities.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages