/// <summary> /// Информация о группе в таблице. /// </summary> void SetGroupInfo(ExcelWorksheet worksheet, int row, int i6, KeyValuePair <Group, StudentsCount> keyValuePair) { worksheet.Cells[3 + row, 2 + i6].SetValueWithBold(keyValuePair.Key.Name); //Название worksheet.Cells[3 + row, 3 + i6].SetValue(SPOHelper.GetStrSpo(keyValuePair.Key.SpoNpo)); //СПО/НПО worksheet.Cells[3 + row, 4 + i6].SetValue(BudgetHelper.GetStrBudget(keyValuePair.Key.IsBudget)); //Б/К worksheet.Cells[3 + row, 5 + i6].SetValue(keyValuePair.Value.Total); //Кол-во worksheet.Cells[3 + row, 6 + i6].SetValue(keyValuePair.Value.OnSabbatical); //Ак. отп. }
public async Task <IEnumerable <Group> > Import() { if (!SelectFile()) { return(null); } try { using (var excel = new ExcelPackage(new FileInfo(FileName))) { var worksheet = excel.Workbook.Worksheets[1]; var groups = new List <Group>(); var res = await client.Staff.GetOrCreateFirstStaffAsync(); if (!res) { return(Enumerable.Empty <Group>()); } int curator = res.Response.Id; for (int i = 0; i < 3; i++) { int i6 = i * 6; int row = 0; while (true) { int currentRow = 3 + row; string name = worksheet.Cells[currentRow, 2 + i6].GetValue <string>() ?? ""; if (!name.IsMatch("^[а-z-Z]{1,3}-[0-9]{2}$")) { break; } var group = new Group { Name = name, SpoNpo = SPOHelper.GetIntSpo(worksheet.Cells[currentRow, 3 + i6].GetValue <string>()), IsBudget = BudgetHelper.GetBoolBudget(worksheet.Cells[currentRow, 4 + i6].GetValue <string>()), Division = i, End = DateTime.Now, Start = DateTime.Now, Specialty = "Специальность", CuratorId = curator }; groups.Add(group); row++; } } Logger.Log.Info($"输入定额数据: {{fileName: {FileName}}}"); return(groups); } } catch (Exception ex) { Logger.Log.Error($"输入定额数据: {{fileName: {FileName}}}", ex); return(null); } }
/// <summary> /// Импорт данных о групах. /// </summary> public async Task <IEnumerable <Group> > Import() { if (!SelectFile()) { return(null); } try { using (var excel = new ExcelPackage(new FileInfo(FileName))) { var worksheet = excel.Workbook.Worksheets[1]; //список групп var groups = new List <Group>(); //первый сотрудник из базы, если нет - создается новый "Иванов Иван Иванович" var res = await client.Staff.GetOrCreateFirstStaffAsync(); if (!res) { return(Enumerable.Empty <Group>()); } int curator = res.Response.Id; for (int i = 0; i < 3; i++) { int i6 = i * 6; int row = 0; //строка while (true) { int currentRow = 3 + row; //текущая строка string name = worksheet.Cells[currentRow, 2 + i6].GetValue <string>() ?? ""; //название группы //проверка регулярным выражением, формата: А-11, АА-11, ААА-11 if (!name.IsMatch("^[а-яА-Я]{1,3}-[0-9]{2}$")) { break; } var group = new Group { Name = name, SpoNpo = SPOHelper.GetIntSpo(worksheet.Cells[currentRow, 3 + i6].GetValue <string>()), //СПО/НПО/ОВЗ -> int IsBudget = BudgetHelper.GetBoolBudget(worksheet.Cells[currentRow, 4 + i6].GetValue <string>()), //Б/К -> int Division = i, End = DateTime.Now, Start = DateTime.Now, Specialty = "Специальность", CuratorId = curator }; groups.Add(group); row++; } } Logger.Log.Info($"Импорт данных о контингенте: {{fileName: {FileName}}}"); return(groups); } } catch (Exception ex) { Logger.Log.Error($"Импорт данных о контингенте: {{fileName: {FileName}}}", ex); return(null); } }