public static RuleWithDetail GetRuleFromExcelRecord(ExcelRuleWithDetailRecord rule) { return(new RuleWithDetail() { Condition = rule.Condition, Reliability = rule.Reliability, Consequence = rule.Consequence, SupportCount = rule.SupportCount }); }
//Получаем записи в "сыром" виде public List <ExcelRuleWithDetailRecord> ReadRecordsFromPath() { if (File.Exists(FileLocation) == false) { throw new FileNotFoundException(); } FileStream fs = new FileStream(FileLocation, FileMode.Open, FileAccess.Read); ExcelPackage.LicenseContext = LicenseContext.NonCommercial; ExcelPackage package = new ExcelPackage(fs); //Берем первый лист var workSheet = package.Workbook.Worksheets[0]; List <ExcelRuleWithDetailRecord> result = new List <ExcelRuleWithDetailRecord>(workSheet.Dimension.End.Row - 1); int start = WithHeader ? 2 : 1; //Проходимся по всем строкам for (var rowNumber = start; rowNumber <= workSheet.Dimension.End.Row; rowNumber++) { string idStr = workSheet.Cells[rowNumber, 1].Value.ToString().Trim(); int id; if (int.TryParse(idStr, out id) == false) { throw new Exception(); } string elementNumStr = workSheet.Cells[rowNumber, 2].Value.ToString().Trim(); int elementNum; if (int.TryParse(elementNumStr, out elementNum) == false) { throw new Exception(); } string conditionStr = workSheet.Cells[rowNumber, 3].Value.ToString().Trim(); DetailDefect condition = RulesWithDetailHelper.DetailInfoFromStr(conditionStr, Parser); string consequenceStr = workSheet.Cells[rowNumber, 4].Value.ToString().Trim(); DetailDefect consequence = RulesWithDetailHelper.DetailInfoFromStr(consequenceStr, Parser); string supportCountStr = workSheet.Cells[rowNumber, 5].Value.ToString().Trim(); int supportCount; if (int.TryParse(supportCountStr, out supportCount) == false) { throw new Exception(); } string supportPercStr = workSheet.Cells[rowNumber, 6].Value.ToString().Trim(); float supportPerc; if (float.TryParse(supportPercStr, out supportPerc) == false) { throw new Exception(); } string reliabilityStr = workSheet.Cells[rowNumber, 7].Value.ToString().Trim(); float reliability; if (float.TryParse(reliabilityStr, out reliability) == false) { throw new Exception(); } string liftStr = workSheet.Cells[rowNumber, 1].Value.ToString().Trim(); float lift; if (float.TryParse(liftStr, out lift) == false) { throw new Exception(); } ExcelRuleWithDetailRecord newRecord = new ExcelRuleWithDetailRecord() { Id = id, ElementNum = elementNum, Condition = condition, Consequence = consequence, SupportCount = supportCount, SupportPerc = supportPerc, Reliability = reliability, Lift = lift }; result.Add(newRecord); } return(result); }