Skip to content

Latest commit

 

History

History
126 lines (94 loc) · 3.9 KB

README.md

File metadata and controls

126 lines (94 loc) · 3.9 KB

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.