private void button1_Click(object sender, EventArgs e) { if (openFileDialog1.ShowDialog() == DialogResult.OK) { ParserExcel.SetPath(openFileDialog1.FileName); } else { return; } }
/// <summary> /// Чтенее файла схемы инсоляции и определение пятен домов /// </summary> /// <exception cref="Exception">Недопустимое имя пятна дома.</exception> public void ReadScheme() { // Чтение матрицы ячеек первого листа в Excel файле var parserExcel = new ParserExcel(this); parserExcel.Parse(ProjectInfo.PathInsolation); HouseSpots = parserExcel.HouseSpots; // Проверка домов CheckHouses(HouseSpots); // Размер застройки var bounds = tree.getBounds(); ProjectInfo.Size = new Cell(Convert.ToInt32(bounds.max[1]) + 1, Convert.ToInt32(bounds.max[0]) + 1); // Инсоляция - все ячейки List <Module> insModulesAll = new List <Module>(); foreach (var houseSpot in HouseSpots) { var houseOpt = spotOptions.Find(o => o.Name == houseSpot.SpotName); if (houseOpt == null) { string allowedHouseNames = string.Join(",", spotOptions.Select(h => h.Name)); throw new Exception("Имя пятна дома определенное в файле инсоляции - '" + houseSpot.SpotName + "' не соответствует одному из допустимых значений: " + allowedHouseNames); } houseSpot.SpotOptions = houseOpt; // добавление ячеек инсоляции foreach (var segment in houseSpot.Segments) { insModulesAll.AddRange(segment.ModulesLeft); insModulesAll.AddRange(segment.ModulesRight); if (segment.ModulesSideEnd != null) { insModulesAll.AddRange(segment.ModulesSideEnd); } if (segment.ModulesSideStart != null) { insModulesAll.AddRange(segment.ModulesSideStart); } } // Определение приоритетной стороны для ЛЛУ в доме houseSpot.PriorityLluSide = houseSpot.Segments.First().DefineLluPriority(ProjectInfo.Size); } // Инсоляция - все ячейки ProjectInfo.InsModulesAll = insModulesAll; }
private void button2_Click(object sender, EventArgs e) { ParserExcel.BaseParse(); }