diff --git a/labs/Teacher/TeacherExt/Controllers/HomeController.cs b/labs/Teacher/TeacherExt/Controllers/HomeController.cs index 2ed15a1a..882a7299 100644 --- a/labs/Teacher/TeacherExt/Controllers/HomeController.cs +++ b/labs/Teacher/TeacherExt/Controllers/HomeController.cs @@ -575,32 +575,74 @@ namespace TeacherExt.Controllers { if (model.Headers.Contains(item.Header)) { + result.Add(item.Header); int i = 0; foreach (var head in item.Headers) { - var cell = (sheet.GetRow(i)??sheet.CreateRow(i)).CreateCell(colIndex); - cell.SetStyle(style).SetCellValue(head.Key); + //var cell = (sheet.GetRow(i)??sheet.CreateRow(i)).CreateCell(colIndex); + //cell.SetCellValue(head.Key); //var length = cell.ToString().Split('\n').Select(o => Encoding.UTF8.GetBytes(o).Count()).Max()*256; //if (length>sheet.GetColumnWidthInPixels(colIndex)) //{ // sheet.SetColumnWidth(colIndex, length); //} - if (head.Value>1) + for (int j = i; j < i + head.Value; j++) { - for (int j = i+1; j < head.Value; j++) - { - var row = sheet.GetRow(j) ?? sheet.CreateRow(j); - (row.GetCell(colIndex)??row.CreateCell(colIndex)).SetStyle(style); - } - sheet.AddMergedRegion(new CellRangeAddress(i,i+head.Value-1,colIndex,colIndex)); - sheet.GetRow(i).GetCell(colIndex).SetStyle(style); + var cell = (sheet.GetRow(j) ?? sheet.CreateRow(j)).CreateCell(colIndex);sheet.me + cell.SetStyle(style).SetCellValue(head.Key); } i = i + head.Value; + //if (head.Value>1) + //{ + + // sheet.AddMergedRegion(new CellRangeAddress(i,i+head.Value-1,colIndex,colIndex)); + // sheet.GetRow(i).GetCell(colIndex).SetStyle(style); + //} + //cell.SetStyle(style); } //sheet.AutoSizeColumn(colIndex); colIndex += 1; } } + for (int i = 0; i < sheet.LastRowNum; i++) + { + var row = sheet.GetRow(i); + for (int j = 0; j < row.LastCellNum; j++) + { + var cell = row.GetCell(j); + if (cell != null && cell.StringCellValue != "") + { + var col = 1; + for (int k = j + 1; k < row.LastCellNum; k++) + { + var next = row.GetCell(k); + if (next == null || next.StringCellValue != cell.StringCellValue) + { + break; + } + col++; + } + if (col > 1) + { + //sheet.AddMergedRegion(new CellRangeAddress(i,i,j,j+col-1)); + Console.WriteLine($"@@@@@:{i},{i},{j},{j + col - 1}"); + + } + var rowRange= + for (int k = i+1; k < sheet.LastRowNum; k++) + { + var next = sheet.GetRow(k)?.GetCell(j); + if(next==null||next.StringCellValue!=cell.StringCellValue) + { + break; + } + } + + } + + Console.WriteLine($">>>>>>>>>>>>>{i}x{j}:{cell?.StringCellValue}"); + } + } return result; } diff --git a/labs/Teacher/TeacherExt/Models/EditTeacherModel.cs b/labs/Teacher/TeacherExt/Models/EditTeacherModel.cs index 8e7a78cb..6fb27c7b 100644 --- a/labs/Teacher/TeacherExt/Models/EditTeacherModel.cs +++ b/labs/Teacher/TeacherExt/Models/EditTeacherModel.cs @@ -225,7 +225,7 @@ namespace TeacherExt.Models [Display(Order = 191, Name = "已审核")] public bool JobAsNotMaxTitleReasonChecked { get; set; } - [ExcelHeader("最高职称聘任时间")] + [ExcelHeader("最高职称聘任时间,未聘,现聘任职称", "2,1,1")] [HtmlData("JobAsMaxTitle2")] [SkipSearch, SkipList] [SelectList] @@ -237,7 +237,7 @@ namespace TeacherExt.Models [Display(Order = 211, Name = "已审核")] public bool NotMaxTitleChecked { get; set; } - [ExcelHeader("最高职称聘任时间")] + [ExcelHeader("最高职称聘任时间,未聘,现聘任职称\r\n取得时间", "2,1,1")] [HtmlData("JobAsMaxTitle2")] [SkipSearch, SkipList] [DataType(DataType.Date)] @@ -249,7 +249,7 @@ namespace TeacherExt.Models [Display(Order = 221, Name = "已审核")] public bool NotMaxTitleStartChecked { get; set; } - [ExcelHeader("最高职称聘任时间")] + [ExcelHeader("最高职称聘任时间,未聘,现聘任职称\r\n聘任时间", "2,1,1")] [HtmlData("JobAsMaxTitle2")] [SkipSearch, SkipList] [DataType(DataType.Date)] @@ -261,13 +261,14 @@ namespace TeacherExt.Models [Display(Order = 231, Name = "已审核")] public bool JobAsNotMaxTitleDateChecked { get; set; } - [Description("是否必填")] + [ExcelHeader("岗位类别")] [SkipSearch, SkipList] [SelectList] [Display(Order = 240, Name = "岗位类别")] [Required(ErrorMessage = "必填项")] public string PostType { get; set; } + [ExcelHeader("现岗位等级")] [SkipSearch, SkipList] [SelectList] [Display(Order = 250, Name = "现岗位等级")] @@ -278,6 +279,7 @@ namespace TeacherExt.Models [Display(Order = 251, Name = "已审核")] public bool PostGradeChecked { get; set; } + [ExcelHeader("变更至现岗位等级时间\r\n以文件\r\n等为准")] [Description("以文件为准")] [SkipSearch, SkipList] [DataType(DataType.Date)] @@ -288,6 +290,7 @@ namespace TeacherExt.Models [Display(Order = 261, Name = "已审核")] public bool CurrentPostGradeStartChecked { get; set; } + [ExcelHeader("享受学历\r\n待遇等级")] [SkipSearch, SkipList] [SelectList] [Display(Order = 270, Name = "享受学历待遇等级")] @@ -297,6 +300,7 @@ namespace TeacherExt.Models [Display(Order = 271, Name = "已审核")] public bool EducationGradeChecked { get; set; } + [ExcelHeader("享受学历\r\n待遇等级时间\r\n以文件为准")] [Description("以文件为准")] [SkipSearch, SkipList] [DataType(DataType.Date)] @@ -308,81 +312,84 @@ namespace TeacherExt.Models [Display(Order = 281, Name = "已审核")] public bool EducationGradeDateChecked { get; set; } - [ExcelHeader("全日制教育")] + [ExcelHeader("全日制教育,毕业院校\r\n以毕业证为准","2,2")] [Description("填写毕业院校全称")] [SkipSearch, SkipList] [Display(Order = 290, Name = "全日制教育毕业院校")] [Required(ErrorMessage = "必填项")] public string FullTimeSchool { get; set; } - [ExcelHeader("全日制教育")] + [ExcelHeader("全日制教育,毕业院校分类", "2,2")] [SkipSearch, SkipList] [SelectList] [Display(Order = 300, Name = "全日制教育毕业院校分类")] [Required(ErrorMessage = "必填项")] public string FullTimeSchoolType { get; set; } - [ExcelHeader("全日制教育")] + [ExcelHeader("全日制教育,专业\r\n以毕业证书为准", "2,2")] [Description("严格按照毕业证书填写")] [SkipSearch, SkipList] [Display(Order = 310, Name = "全日制教育毕业证书专业")] [Required(ErrorMessage = "必填项")] public string FullTimeSchoolMajor { get; set; } - [ExcelHeader("全日制教育")] + [ExcelHeader("全日制教育,学历", "2,2")] [SkipSearch, SkipList] [SelectList] [Display(Order = 320, Name = "全日制教育学历")] [Required(ErrorMessage = "必填项")] public string FullTimeSchoolEducation { get; set; } - [ExcelHeader("全日制教育")] + [ExcelHeader("全日制教育,学历\r\n取得时间","2,2")] [SkipSearch, SkipList] [Display(Order = 330, Name = "全日制教育学历取得时间")] [DataType(DataType.Date)] [Required(ErrorMessage = "必填项")] public DateTime? FullTimeSchoolEducationDate { get; set; } - [ExcelHeader("在职教育")] + [ExcelHeader("在职教育,毕业院校\r\n以毕业证为准", "2,2")] [Description("是否提示【填写毕业院校全称】")] [SkipSearch, SkipList] [Display(Order = 350, Name = "在职教育毕业院校")] public string JobTimeSchool { get; set; } - [ExcelHeader("在职教育")] + [ExcelHeader("在职教育,毕业院校分类", "2,2")] [SkipSearch, SkipList] [SelectList] [Display(Order = 340, Name = "在职教育毕业院校分类")] public string JobTimeSchoolType { get; set; } - [ExcelHeader("在职教育")] + [ExcelHeader("在职教育,专业\r\n以毕业证书为准", "2,2")] [Description("是否提示【严格按照毕业证书填写】")] [SkipSearch, SkipList] [Display(Order = 360, Name = "在职教育毕业证书专业")] public string JobTimeSchoolMajor { get; set; } - [ExcelHeader("在职教育")] + [ExcelHeader("在职教育,学历", "2,2")] [SkipSearch, SkipList] [SelectList] [Display(Order = 370, Name = "在职教育学历")] public string JobTimeSchoolEducation { get; set; } - [ExcelHeader("在职教育")] + [ExcelHeader("在职教育,学历\r\n取得时间", "2,2")] [SkipSearch, SkipList] [Display(Order = 380, Name = "在职教育学历取得时间")] [DataType(DataType.Date)] public DateTime? JobTimeSchoolEducationDate { get; set; } + [ExcelHeader("最高\r\n学历")] [SkipSearch, SkipList] [SelectList] [Display(Order = 390, Name = "最高学历")] public string MaxEducation { get; set; } + [ExcelHeader("最高\r\n学位")] [SkipSearch, SkipList] [SelectList] [Display(Order = 400, Name = "最高学位")] public string MaxDegree { get; set; } + [ExcelHeader("是否担任班主任")] [SkipSearch, SkipList] [Display(Order = 410, Name = "是否担任班主任")] public bool IsClassTeacher { get; set; } @@ -391,6 +398,7 @@ namespace TeacherExt.Models [Display(Order = 411, Name = "已审核")] public bool IsClassTeacherChecked { get; set; } + [ExcelHeader("主要任教学段")] [SkipSearch, SkipList] [SelectList] [Display(Order = 420, Name = "主要任教学段")] @@ -401,6 +409,7 @@ namespace TeacherExt.Models [Display(Order = 421, Name = "已审核")] public bool MainTeachPeriodChecked { get; set; } + [ExcelHeader("主要任教学科")] [Description("选择项中没有则手动填写")] [SkipSearch, SkipList] [SelectList(true)] @@ -412,6 +421,7 @@ namespace TeacherExt.Models [Display(Order = 432, Name = "已审核")] public bool MainTeachSubjectChecked { get; set; } + [ExcelHeader("主要任教\r\n年级")] [SkipSearch, SkipList] [SelectList] [Display(Order = 440, Name = "主要任教年级")] @@ -422,6 +432,7 @@ namespace TeacherExt.Models [Display(Order = 441, Name = "已审核")] public bool MainTeachGradeChecked { get; set; } + [ExcelHeader("主要任教\r\n年级")] [SkipSearch, SkipList] [SelectList] [Display(Order = 450, Name = "兼职任教学段")] @@ -431,6 +442,7 @@ namespace TeacherExt.Models [Display(Order = 451, Name = "已审核")] public bool OtherTeachPeriodChecked { get; set; } + [ExcelHeader("兼职任教学科")] [Description("选择项中没有则手动填写")] [SkipSearch, SkipList] [SelectList] @@ -454,7 +466,7 @@ namespace TeacherExt.Models [Display(Order = 464, Name = "是否中层")] public bool? IsMiddleLevel { get; set; } - [ExcelHeader("在编人员在岗情况")] + [ExcelHeader("在编人员在岗情况,在编在岗\r\n(是否为学校中层及以上),是,职务","1,1,1,1")] [Description("选择项中没有则手动填写")] [HtmlData("HasPosition11")] [SkipSearch, SkipList] @@ -467,7 +479,7 @@ namespace TeacherExt.Models [Display(Order = 471, Name = "已审核")] public bool PositionChecked { get; set; } - [ExcelHeader("在编人员在岗情况")] + [ExcelHeader("在编人员在岗情况,在编在岗\r\n(是否为学校中层及以上),是,任命时间", "1,1,1,1")] [HtmlData("HasPosition11")] [SkipSearch, SkipList] [DataType(DataType.Date)] @@ -479,7 +491,7 @@ namespace TeacherExt.Models [Display(Order = 481, Name = "已审核")] public bool PositionStartChecked { get; set; } - [ExcelHeader("在编人员在岗情况")] + [ExcelHeader("在编人员在岗情况,在编在岗\r\n(是否为学校中层及以上),否\r\n(一线教师)", "1,1,2")] [Description("填写所教学科全称")] [HtmlData("HasPosition12")] [SkipSearch, SkipList] @@ -487,7 +499,7 @@ namespace TeacherExt.Models [Display(Order = 490, Name = "一线教师")] public string FrontTeacher { get; set; } - [ExcelHeader("在编人员在岗情况")] + [ExcelHeader("在编人员在岗情况,在编不在岗,原由", "1,1,2")] [HtmlData("HasPosition2")] [SkipSearch, SkipList] [SelectList(true)] @@ -500,7 +512,7 @@ namespace TeacherExt.Models [Display(Order = 501, Name = "已审核")] public bool NotOnPostReasonChecked { get; set; } - [ExcelHeader("在编人员在岗情况")] + [ExcelHeader("在编人员在岗情况,在编不在岗,不在岗\r\n起始时间", "1,1,2")] [HtmlData("HasPosition2")] [SkipSearch, SkipList] [DataType(DataType.Date)] @@ -512,33 +524,39 @@ namespace TeacherExt.Models [Display(Order = 511, Name = "已审核")] public bool NotOnPostReasonDateChecked { get; set; } + [ExcelHeader("教师资格证\r\n种类")] [SkipSearch, SkipList] [SelectList] [Display(Order = 520, Name = "教师资格证种类")] [Required(ErrorMessage = "必填项")] public string TeacherCardType { get; set; } + [ExcelHeader("教师资格证\r\n任教学科\r\n(严格按照资格证书填写)")] [Description("严格按照资格证书填写")] [SkipSearch, SkipList] [Display(Order = 530, Name = "任教学科")] public string TeacherCardSubject { get; set; } + [ExcelHeader("普通话\r\n等级")] [SkipSearch, SkipList] [SelectList] [Display(Order = 540, Name = "普通话等级")] public string TeacherCardLangLevel { get; set; } + [ExcelHeader("现住址详细地址-区县")] [SkipSearch, SkipList] [SelectList(true)] - [Display(Order = 550, Name = "现家庭详细地址-区县")] + [Display(Order = 550, Name = "现家庭地址-区县")] [Required(ErrorMessage = "必填项")] public string CurrentAddressArea { get; set; } + [ExcelHeader("现住址详细地址\r\n(街道 - 小区)")] [SkipSearch, SkipList] [Display(Order = 560, Name = "现家庭详细地址")] [Required(ErrorMessage = "必填项")] public string CurrentAddressStreat { get; set; } + [ExcelHeader("备注")] [SkipSearch, SkipList] [Display(Order = 570, Name = "审核失败原因")] public string Comment { get; set; }