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;
		}
예제 #2
0
 public object ConvertFromString(string text, IReaderRow row, MemberMapData memberMapData)
 => string.IsNullOrWhiteSpace(text) ? null : SchoolDistrictPaymentType.FromString(text);