|
|
|
@ -15,6 +15,8 @@ using System.IO;
|
|
|
|
|
using TeacherExt.Entities;
|
|
|
|
|
using TeacherExt.Models;
|
|
|
|
|
using NPOI.XSSF.UserModel;
|
|
|
|
|
using TeacherExt.Infra;
|
|
|
|
|
using NPOI.SS.UserModel;
|
|
|
|
|
|
|
|
|
|
namespace TeacherExt.Controllers
|
|
|
|
|
{
|
|
|
|
@ -43,11 +45,52 @@ namespace TeacherExt.Controllers
|
|
|
|
|
var template = Path.Combine(this._env.ContentRootPath,"wwwroot", "teacher.xlsx");
|
|
|
|
|
using var fs = System.IO.File.OpenRead(template);
|
|
|
|
|
var wk = new XSSFWorkbook(fs);
|
|
|
|
|
var sheet = wk.GetSheetAt(0);
|
|
|
|
|
this.ExportInternal(sheet);
|
|
|
|
|
for (int i = 0; i < 68; i++)
|
|
|
|
|
{
|
|
|
|
|
sheet.AutoSizeColumn(i);
|
|
|
|
|
}
|
|
|
|
|
using var ms = new MemoryStream();
|
|
|
|
|
wk.Write(ms);
|
|
|
|
|
return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",$"教师列表_{DateTime.Now.ToString("yyyy_MM-dd_HH_mm_ss")}.xlsx");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void ExportInternal(ISheet sheet)
|
|
|
|
|
{
|
|
|
|
|
var style = sheet.Workbook.CreateCellStyle();
|
|
|
|
|
style.BorderTop = BorderStyle.Thin;
|
|
|
|
|
style.BorderRight = BorderStyle.Thin;
|
|
|
|
|
style.BorderBottom = BorderStyle.Thin;
|
|
|
|
|
style.BorderLeft = BorderStyle.Thin;
|
|
|
|
|
var list = this._teacherRepo.ReadOnlyTable()
|
|
|
|
|
.ToList().Select(o =>
|
|
|
|
|
{
|
|
|
|
|
var m = o.To<EditTeacherModel>();
|
|
|
|
|
this.EntityToModel(o, m);
|
|
|
|
|
this.ToDisplayModel(o, m);
|
|
|
|
|
return m;
|
|
|
|
|
})
|
|
|
|
|
.ToList();
|
|
|
|
|
for (int i = 0; i < list.Count; i++)
|
|
|
|
|
{
|
|
|
|
|
var teacher = list[i];
|
|
|
|
|
var rowNumber = i + 1;
|
|
|
|
|
var rowIndex = i + 4;
|
|
|
|
|
var row = sheet.CreateRow(rowIndex);
|
|
|
|
|
var colIndex = -1;
|
|
|
|
|
row.CreateCell(++colIndex).SetStyle(style).SetType(CellType.Numeric).SetCellValue(rowNumber);
|
|
|
|
|
row.CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.Organ);
|
|
|
|
|
row.CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.UserType);
|
|
|
|
|
row.CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.RealName);
|
|
|
|
|
row.CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.Sex);
|
|
|
|
|
if(teacher.Birthday.HasValue)
|
|
|
|
|
{
|
|
|
|
|
row.CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.Birthday.Value.ToString("yyyy-MM"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void OnActionExecuting(ActionExecutingContext context)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
@ -65,15 +108,15 @@ namespace TeacherExt.Controllers
|
|
|
|
|
|
|
|
|
|
public override void EntityToModel(Teacher entity, EditTeacherModel model)
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrEmpty(entity.IdNumber))
|
|
|
|
|
if (!string.IsNullOrEmpty(entity.IdNumber))
|
|
|
|
|
{
|
|
|
|
|
var value = entity.IdNumber.Length == 15 ? $"19{entity.IdNumber.Substring(5, 6)}" : entity.IdNumber.Substring(5, 8);
|
|
|
|
|
var value = entity.IdNumber.Length == 15 ? $"19{entity.IdNumber.Substring(6, 6)}" : entity.IdNumber.Substring(6, 8);
|
|
|
|
|
var birthday = DateTime.ParseExact(value, "yyyyMMdd", CultureInfo.InvariantCulture);
|
|
|
|
|
model.Age = DateTime.Now.Year - birthday.Year;
|
|
|
|
|
}
|
|
|
|
|
if (entity.JobStart.HasValue)
|
|
|
|
|
{
|
|
|
|
|
model.Age = DateTime.Now.Year - entity.JobStart.Value.Year;
|
|
|
|
|
model.JobAge = DateTime.Now.Year - entity.JobStart.Value.Year;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|