示例#1
0
        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"));
        }
示例#2
0
        public string GetCasteName(int id)
        {
            Caste caste = _casteDalService.Get(id);

            if (caste is null)
            {
                return("-- не выбрано --");
            }

            return(caste.Name);
        }