private AddressShort ParseAddress(string rawAddress) { var array = rawAddress.Split(','); if (array.Length != 4) { return(null); } var street = array[1].ToLower().Replace("улица", string.Empty).Trim(); var house = array[2].ToLower().Trim(); var apartment = array[3].ToLower().Trim(); var result = new AddressShort { Street = street, House = house, Apartment = apartment }; return(result); }
private List <Verification> Parse(List <Address> addressList) { label_wait.Visible = true; label_wait.Text = "Считывание и обработка данных..."; var rowNumber = 0; var result = new List <Verification>(); try { Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); Workbook xlWorkbook = xlApp.Workbooks.Open(textBox_path.Text, 0, true, 5, "", "", true, XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); _Worksheet xlWorksheet = (_Worksheet)xlWorkbook.Sheets[1]; Microsoft.Office.Interop.Excel.Range xlRange = xlWorksheet.UsedRange; Verification verification = null; Counter prevCounter = null; progressBar1.Maximum = xlRange.Rows.Count; for (int i = 1; i < xlRange.Rows.Count; i++) { rowNumber = i; var addressCell = (Microsoft.Office.Interop.Excel.Range)xlWorksheet.Cells[rowNumber, 4]; if (addressCell.Font.Bold == true && !string.IsNullOrEmpty(addressCell.Value)) { AddressShort shortAddress = ParseAddress(addressCell.Value.ToString()); if (verification != null) { result.Add(verification); verification = null; } if (shortAddress == null) { continue; } var exist = addressList.FirstOrDefault(w => w.Street == shortAddress.Street && w.House == shortAddress.House && w.Apartment == shortAddress.Apartment); if (exist == null) { continue; } verification = new Verification { Address = addressCell.Value.ToString(), Counters = new List <Counter>() }; } var typeCell = (Microsoft.Office.Interop.Excel.Range)xlWorksheet.Cells[rowNumber, 2]; if (verification != null) { var row = (Microsoft.Office.Interop.Excel.Range)xlWorksheet.Cells[rowNumber, 1]; if (string.IsNullOrEmpty(row.Value) || !Regex.IsMatch(row.Value.ToString(), "^[\\d]{1,2}$")) { continue; } var counter = new Counter(); counter.Name = ((Microsoft.Office.Interop.Excel.Range)xlWorksheet.Cells[rowNumber, 2])?.Value == null ? prevCounter?.Name : ((Microsoft.Office.Interop.Excel.Range)xlWorksheet.Cells[rowNumber, 2])?.Value.ToString(); counter.StartCount = ((Microsoft.Office.Interop.Excel.Range)xlWorksheet.Cells[rowNumber, 12]).Value.ToString(); counter.EndCount = ((Microsoft.Office.Interop.Excel.Range)xlWorksheet.Cells[rowNumber, 13]).Value.ToString(); counter.StartDate = ((Microsoft.Office.Interop.Excel.Range)xlWorksheet.Cells[rowNumber, 14]).Value.ToString(); counter.EndDate = ((Microsoft.Office.Interop.Excel.Range)xlWorksheet.Cells[rowNumber, 15]).Value.ToString(); verification.Counters.Add(counter); prevCounter = counter; } progressBar1.PerformStep(); } } catch (Exception ex) { MessageBox.Show(ex.StackTrace); MessageBox.Show(ex.Message); } return(result); }
public ActionResult DisplayAddressShort([Bind(Prefix = "Address", Exclude = "City")] AddressShort summary) { return(View(summary)); }