public FileResult GetExcel(IEnumerable <int> prisonerIds) { List <Prisoner> prisoners = new List <Prisoner>(); foreach (var id in prisonerIds) { prisoners.Add(_prisonerDalService.Get(id)); } ExcelPackage.LicenseContext = OfficeOpenXml.LicenseContext.NonCommercial; ExcelPackage excelPackage = new ExcelPackage(); ExcelWorksheet prisonersWorksheet = excelPackage.Workbook.Worksheets.Add("Заключенные"); prisonersWorksheet.Cells["A1"].Value = "Фамилия"; prisonersWorksheet.Cells["B1"].Value = "Имя"; prisonersWorksheet.Cells["C1"].Value = "Отчество"; prisonersWorksheet.Cells["D1"].Value = "Дата заключения"; prisonersWorksheet.Cells["E1"].Value = "Дата освобождения"; prisonersWorksheet.Cells["F1"].Value = "Каста"; prisonersWorksheet.Cells["G1"].Value = "Статьи"; prisonersWorksheet.Cells[1, 1, 1, 7].AutoFitColumns(); prisonersWorksheet.Cells[1, 1, 1, 7].Style.Font.Bold = true; prisonersWorksheet.Column(4).Style.Numberformat.Format = "dd-MM-yyyy"; prisonersWorksheet.Column(5).Style.Numberformat.Format = "dd-MM-yyyy"; int currentRow = 1; foreach (var prisoner in prisoners) { currentRow++; string casteName = _casteDalService.Get(prisoner.CasteId)?.Name; List <string> articleNames = new List <string>(); foreach (var article in prisoner.Articles) { articleNames.Add(article.Number + " - " + article.Name); } prisonersWorksheet.Cells[currentRow, 1].Value = prisoner.Surname; prisonersWorksheet.Cells[currentRow, 2].Value = prisoner.Name; prisonersWorksheet.Cells[currentRow, 3].Value = prisoner.MiddleName; prisonersWorksheet.Cells[currentRow, 4].Value = prisoner.ArrestDate; prisonersWorksheet.Cells[currentRow, 5].Value = prisoner.ReleaseDate; prisonersWorksheet.Cells[currentRow, 6].Value = string.IsNullOrEmpty(casteName) ? "-" : casteName; prisonersWorksheet.Cells[currentRow, 7].Value = articleNames.Any() ? string.Join(", ", articleNames) : "-"; } return(File(excelPackage.GetAsByteArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", $"Резульат Выборки - {DateTime.Now.Day}.{DateTime.Now.Month}.{DateTime.Now.Year}.xlsx")); }
public string GetCasteName(int id) { Caste caste = _casteDalService.Get(id); if (caste is null) { return("-- не выбрано --"); } return(caste.Name); }