/SheetToObjects

Simple library which aims to provide developers with an easy solution to map sheets (Google Sheets, Microsoft Excel, csv) to models

Primary LanguageC#MIT LicenseMIT

Build status Nuget Version

What is SheetToObjects?

A simple library which aims to provide developers with an easy solution to map sheets (Google Sheets, Microsoft Excel, csv) to a model/POCO.

Quickstart

Below is an example on how to get started:

//1. configure
var sheetMapper = new SheetMapper()
    .AddConfigFor<SomeModel>(cfg => cfg
        .AddColumn(column => column.WithHeader("First Name").IsRequired().MapTo(m => m.FirstName))
        .AddColumn(column => column.WithHeader("Middle Name").MapTo(m => m.MiddleName))
        .AddColumn(column => column.WithHeader("Last Name").IsRequired().MapTo(m => m.LastName))
        .AddColumn(column => column.WithHeader("Email").IsRequired().ShouldHaveUniqueValue()
            .Matches("^\S+@\S+$").MapTo(m => m.Email))
        .AddColumn(column => column.WithHeader("Age").WithCustomRule<int>(age => age > 18 && age <= 67)
            .MapTo(m => m.Email))
    );

//2. get sheet data
var sheet = await _googleSheetProvider.GetAsync(mySheetId, "'My SheetName'!A1:H5", myApiKey);

//3. do the mapping
var result = _sheetMapper.Map<MyModel>(sheet);

Documentation

For more information, check out the wiki