private static IList<SchoolDistrict> XlsxToDistricts(Stream stream) { var wb = new Workbook(stream); var sheet = wb.Worksheets[0]; var fopts = new FindOptions(); fopts.LookAtType = LookAtType.EntireContent; fopts.LookInType = LookInType.Values; var aunIndex = sheet.Cells.Find("AUN", null, fopts).Column; var nameIndex = sheet.Cells.Find("School District", null, fopts).Column; var rateIndex = sheet.Cells.Find("Nonspecial", null, fopts).Column; var specialRateIndex = sheet.Cells.Find("Special", null, fopts).Column; var typeIndex = sheet.Cells.Find("PaymentType", null, fopts).Column; var districts = new List<SchoolDistrict>(); for (var i = 1; i <= sheet.Cells.MaxDataRow; i++) { var row = sheet.Cells.GetRow(i); if (row == null || row.IsBlank) continue; var ptype = sheet.Cells[i, typeIndex].StringValue; districts.Add(new SchoolDistrict { Aun = (int)sheet.Cells[i, aunIndex].IntValue, Name = sheet.Cells[i, nameIndex].StringValue, Rate = sheet.Cells[i, rateIndex].DoubleValue, SpecialEducationRate = sheet.Cells[i, specialRateIndex].DoubleValue, PaymentType = string.IsNullOrWhiteSpace(ptype) ? null : SchoolDistrictPaymentType.FromString(ptype), }); } return districts; }
public object ConvertFromString(string text, IReaderRow row, MemberMapData memberMapData) => string.IsNullOrWhiteSpace(text) ? null : SchoolDistrictPaymentType.FromString(text);