//поиск оборудования для четвёртой серии public void SearchOborud16m() { VLDataBase vl = new VLDataBase(); //получаем список опор 4-й серии из базы данных var opory = vl.GetOp_4(); Opory16m selectOpora = new Opory16m(); foreach (var s in ListNameELement) { selectOpora = opory.FirstOrDefault(x => x.Name == s); if (selectOpora != null) { CurrentOpory16m.Add(selectOpora); } } }
public void CreateOp16m(Excel._Worksheet oSheet) { //////////////////////////////////////////////////// 4-я серия ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //создаём заголовки таблиц по ячейкам для опор Opory16m vl = new Opory16m(); int col = 0;//количество 'элементов //массив свойств опоры вл PropertyInfo[] pi = vl.GetType().GetProperties(); for (int i = 0; i < OpVl16m.Count(); i++) { oSheet.Cells[135, i + 2] = OpVl16m[i].Name; vl = OpVl16m.FirstOrDefault(x => x.Name == OpVl16m[i].Name); col = Colich(OpVl16m[i].Name); for (int j = 1; j < pi.Count(); j++) { double name = Convert.ToDouble(pi[j].GetValue(vl, null)); oSheet.Cells[135 + j + 1, i + 2] = name * col; } } oSheet.Cells[135, OpVl16m.Count() + 2] = "Итого:"; for (int i = 2; i < pi.Count() + 1; i++) { var cellStart = oSheet.Cells[135 + i, 2].Address; // первая заполненная ячейка в строке var cellEnd = oSheet.Cells[135 + i, OpVl16m.Count() + 1].Address; // последняя заполненная ячейка в строке oSheet.Cells[135 + i, OpVl16m.Count() + 2] = "=SUM(" + cellStart + ":" + cellEnd + ")"; } //список названий столбцов бд опор вл var s = vl.GetName(); for (int i = 1; i < s.Count(); i++) { oSheet.Cells[136 + i, 1] = s[i]; } }