diff --git a/labs/Teacher/TeacherExt/Controllers/HomeController.cs b/labs/Teacher/TeacherExt/Controllers/HomeController.cs index 62ac8073..ba062ee3 100644 --- a/labs/Teacher/TeacherExt/Controllers/HomeController.cs +++ b/labs/Teacher/TeacherExt/Controllers/HomeController.cs @@ -403,68 +403,67 @@ namespace TeacherExt.Controllers var row = sheet.CreateRow(rowIndex); teacher.DisplayOrder = rowNumber; - row.Order(00).CreateCell(++colIndex).SetStyle(style).SetType(CellType.Numeric).SetCellValue(rowNumber); - // this.IsExport(teacher); - row.Order(01).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.Organ); - row.Order(02).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.RealName); - row.Order(03).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.Sex) ? "无" : teacher.Sex); - row.Order(04).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.Birthday.HasValue ? teacher.Birthday.Value.ToString("yyyy-MM") : "无"); - if (teacher.Age.HasValue) - { - row.Order(05).CreateCell(++colIndex).SetStyle(style).SetType(CellType.Numeric).SetCellValue(teacher.Age.Value); - } - else - { - row.Order(05).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无"); - } - row.Order(06).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.Nation) ? "无" : teacher.Nation); - row.Order(07).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.NativePlace) ? "无" : teacher.NativePlace); - row.Order(08).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.PhoneNumber) ? "无" : teacher.PhoneNumber); - row.Order(09).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.IdNumber) ? "无" : teacher.IdNumber); - row.Order(10).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JobStart.HasValue ? teacher.JobStart.Value.ToString("yyyy-MM") : "无"); - row.Order(11).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.TeachDate.HasValue ? teacher.TeachDate.Value.ToString("yyyy-MM") : "无"); - row.Order(12).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.CurrentJobStart.HasValue ? teacher.CurrentJobStart.Value.ToString("yyyy-MM") : "无"); + row.Export("A", headers, () => teacher.DisplayOrder)?.SetCell(++colIndex,style,teacher.DisplayOrder); + row.Export("B", headers, () => teacher.Organ)?.SetCell(++colIndex,style,teacher.Organ); + row.Export("C", headers, () => teacher.RealName)?.SetCell(++colIndex,style,teacher.RealName); + row.Export("D", headers, () => teacher.Sex)?.SetCell(++colIndex,style,teacher.Sex); + row.Export("E", headers, () => teacher.Birthday)?.SetCell(++colIndex, style, teacher.Birthday); + row.Export("F", headers, () => teacher.Age)?.SetCell(++colIndex, style, teacher.Age); + //if (teacher.Age.HasValue) + //{ + // row.Export("F", headers, () => teacher.Age).CreateCell(++colIndex).SetStyle(style).SetType(CellType.Numeric).SetCellValue(teacher.Age.Value); + //} + //else + //{ + // row.Export("F", headers, () => teacher.Age).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无"); + //} + row.Export("G", headers, () => teacher.Nation).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.Nation) ? "无" : teacher.Nation); + row.Export("H", headers, () => teacher.NativePlace).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.NativePlace) ? "无" : teacher.NativePlace); + row.Export("I", headers, () => teacher.PhoneNumber).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.PhoneNumber) ? "无" : teacher.PhoneNumber); + row.Export("J", headers, () => teacher.IdNumber).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.IdNumber) ? "无" : teacher.IdNumber); + row.Export("K", headers, () => teacher.JobStart).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JobStart.HasValue ? teacher.JobStart.Value.ToString("yyyy-MM") : "无"); + row.Export("L", headers, () => teacher.TeachDate).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.TeachDate.HasValue ? teacher.TeachDate.Value.ToString("yyyy-MM") : "无"); + row.Export("M", headers, () => teacher.CurrentJobStart).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.CurrentJobStart.HasValue ? teacher.CurrentJobStart.Value.ToString("yyyy-MM") : "无"); if (teacher.JobStart.HasValue) { - - row.Order(13).CreateCell(++colIndex).SetStyle(style).SetType(CellType.Numeric).SetCellValue(teacher.JobAgeYear.Value); - row.Order(14).CreateCell(++colIndex).SetStyle(style).SetType(CellType.Numeric).SetCellValue(teacher.JobAgeMonth.Value); + row.Export("N", headers, () => teacher.JobAgeYear).CreateCell(++colIndex).SetStyle(style).SetType(CellType.Numeric).SetCellValue(teacher.JobAgeYear.Value); + row.Export("O", headers, () => teacher.JobAgeMonth).CreateCell(++colIndex).SetStyle(style).SetType(CellType.Numeric).SetCellValue(teacher.JobAgeMonth.Value); } else { - row.Order(13).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无"); - row.Order(14).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无"); + row.Export("N", headers, () => teacher.JobAgeYear).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无"); + row.Export("O", headers, () => teacher.JobAgeMonth).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无"); } - row.Order(15).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.Politics) ? "无" : teacher.Politics); - row.Order(16).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JoinPartyDate.HasValue ? teacher.JoinPartyDate.Value.ToString("yyyy-MM") : "无"); - row.Order(17).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.MaxTitle) ? "无" : teacher.MaxTitle); - row.Order(18).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.MaxTitleStart.HasValue ? teacher.MaxTitleStart.Value.ToString("yyyy-MM") : "无"); + row.Export("P", headers, () => teacher.Politics).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.Politics) ? "无" : teacher.Politics); + row.Export("Q", headers, () => teacher.JoinPartyDate).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JoinPartyDate.HasValue ? teacher.JoinPartyDate.Value.ToString("yyyy-MM") : "无"); + row.Export("R", headers, () => teacher.MaxTitle).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.MaxTitle) ? "无" : teacher.MaxTitle); + row.Export("S", headers, () => teacher.MaxTitleStart).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.MaxTitleStart.HasValue ? teacher.MaxTitleStart.Value.ToString("yyyy-MM") : "无"); if (teacher.IsJobAsMaxTitle.HasValue) { if (teacher.IsJobAsMaxTitle.Value) { - row.Order(19).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JobAsMaxTitleDate.HasValue ? teacher.JobAsMaxTitleDate.Value.ToString("yyyy-MM") : "无"); - row.Order(20).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无"); - row.Order(21).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无"); - row.Order(22).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无"); - row.Order(23).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无"); + row.Export("T", headers, () => teacher.JobAsMaxTitleDate).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JobAsMaxTitleDate.HasValue ? teacher.JobAsMaxTitleDate.Value.ToString("yyyy-MM") : "无"); + row.Export("U", headers, () => teacher.JobAsNotMaxTitleReason).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无"); + row.Export("V", headers, () => teacher.NotMaxTitle).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无"); + row.Export("W", headers, () => teacher.NotMaxTitleStart).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无"); + row.Export("X", headers, () => teacher.JobAsNotMaxTitleDate).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无"); } else { - row.Order(19).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无"); - row.Order(20).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.JobAsNotMaxTitleReason) ? "无" : teacher.JobAsNotMaxTitleReason); - row.Order(21).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.NotMaxTitle) ? "无" : teacher.NotMaxTitle); - row.Order(22).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.NotMaxTitleStart.HasValue ? teacher.NotMaxTitleStart.Value.ToString("yyyy-MM") : "无"); - row.Order(23).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JobAsNotMaxTitleDate.HasValue ? teacher.JobAsNotMaxTitleDate.Value.ToString("yyyy-MM") : "无"); + row.Export("T", headers, () => teacher.JobAsMaxTitleDate).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无"); + row.Export("U", headers, () => teacher.JobAsNotMaxTitleReason).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.JobAsNotMaxTitleReason) ? "无" : teacher.JobAsNotMaxTitleReason); + row.Export("V", headers, () => teacher.NotMaxTitle).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.NotMaxTitle) ? "无" : teacher.NotMaxTitle); + row.Export("W", headers, () => teacher.NotMaxTitleStart).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.NotMaxTitleStart.HasValue ? teacher.NotMaxTitleStart.Value.ToString("yyyy-MM") : "无"); + row.Export("X", headers, () => teacher.JobAsNotMaxTitleDate).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JobAsNotMaxTitleDate.HasValue ? teacher.JobAsNotMaxTitleDate.Value.ToString("yyyy-MM") : "无"); } } else { - row.Order(19).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无"); - row.Order(20).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无"); - row.Order(21).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无"); - row.Order(22).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无"); - row.Order(23).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无"); + row.Export("T", headers, () => teacher.JobAsMaxTitleDate).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无"); + row.Export("U", headers, () => teacher.JobAsNotMaxTitleReason).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无"); + row.Export("V", headers, () => teacher.NotMaxTitle).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无"); + row.Export("W", headers, () => teacher.NotMaxTitleStart).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无"); + row.Export("X", headers, () => teacher.JobAsNotMaxTitleDate).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue("无"); } row.Order(24).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.PostType) ? "无" : teacher.PostType); row.Order(25).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.PostGrade) ? "无" : teacher.PostGrade); diff --git a/labs/Teacher/TeacherExt/Controllers/NPOIHelper.cs b/labs/Teacher/TeacherExt/Controllers/NPOIHelper.cs index 06b4bc96..4bf128c8 100644 --- a/labs/Teacher/TeacherExt/Controllers/NPOIHelper.cs +++ b/labs/Teacher/TeacherExt/Controllers/NPOIHelper.cs @@ -5,6 +5,7 @@ using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using System.Linq.Expressions; using System.Reflection; using System.Text; @@ -24,10 +25,48 @@ namespace TeacherExt.Controllers return cell; } + public static ICell SetCell(this IRow row,int col, ICellStyle style,object value) + { + var cell = row.GetCell(col) ?? row.CreateCell(col); + cell.SetStyle(style); + if(value!=null) + { + if(value.GetType().UnderlyingSystemType == typeof(int)) + { + cell.SetCellType(CellType.Numeric); + cell.SetCellValue((value as int?).Value); + } + else if(value.GetType().UnderlyingSystemType==typeof(DateTime)) + { + cell.SetCellType(CellType.String); + cell.SetCellValue((value as DateTime?).Value); + } + else + { + cell.SetCellType(CellType.String); + cell.SetCellValue(value as string); + } + } + else + { + cell.SetCellType(CellType.String); + cell.SetCellValue("无"); + } + return cell; + } public static IRow Order(this IRow row, int order) { return row; } + public static IRow Export(this IRow row, string rawCol, List allExportHeaders, Expression> property) + { + var excelHeader = ((property.Body as UnaryExpression)?.Operand as MemberExpression)?.Member?.GetCustomAttribute()?.Header; + if (allExportHeaders!=null&& property != null&&!string.IsNullOrEmpty(excelHeader)&&!allExportHeaders.Contains(excelHeader)) + { + return null; + } + return row; + } public static ICellStyle CreateStyle(ISheet sheet, short? backgroundColor = null, double? fontSize = null, short? fontColor = null, bool isBold = false, string fontName = null, bool? textWrap = null) { diff --git a/labs/Teacher/TeacherExt/Models/EditTeacherModel.cs b/labs/Teacher/TeacherExt/Models/EditTeacherModel.cs index 4725b0dd..ab6aacca 100644 --- a/labs/Teacher/TeacherExt/Models/EditTeacherModel.cs +++ b/labs/Teacher/TeacherExt/Models/EditTeacherModel.cs @@ -44,7 +44,7 @@ namespace TeacherExt.Models [ExcelHeader("序号")] [HiddenInput] - public int DisplayOrder { get; set; } + public int? DisplayOrder { get; set; } [ExcelHeader("工作单位")] [ReadOnly(true)]