public override async Task <ExcelFileRecord> Load(string url, TypedParseToJsonOptions options) { var container = await reader.Load(url, options.SheetsOptions); var validationResult = new Dictionary <int, SheetValidationResult>(); var sheets = container.Sheets; foreach (var sheet in sheets) { var sheetOptions = GetOptions(sheet, options); var request = new SheetOnTypeParseRequest { LongName = sheetOptions?.SheetName, MappingOptions = sheetOptions, NamingStrategy = options.NamingStrategy, RootType = options.OnType(), Sheet = sheet }; var result = await sheetValidator.Validate(request); validationResult[sheet.Index] = result; } return(new ExcelFileRecord(url, sheets, validationResult, options)); }
public async Task <SheetValidationResult> Validate(string url, int sheetIndex = 0, JsonNamingStrategy jsonNamingStrategy = JsonNamingStrategy.None, string[] headerMap = null, bool ignoreFirstRow = true) { loaded = true; ignoreFirst = ignoreFirstRow; namingStrategy = jsonNamingStrategy; map = headerMap; var sheet = await reader.LoadSheet(url, sheetIndex, map); if (sheet == null) { return(SheetValidationResult.SheetNotPresent()); } var request = new SheetOnTypeParseRequest { MappingOptions = new SheetMappingOptions { Ignore = ignoreFirst, Map = headerMap, IndexAsId = true }, NamingStrategy = namingStrategy, RootType = typeof(T), Sheet = sheet }; sheetValidationResult = await sheetValidator.Validate(request); return(sheetValidationResult); }