A simple library which aims to provide developers with an easy solution to map sheets (Google Sheets, Microsoft Excel, csv) to a model/POCO.
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);