Former-commit-id: e2a4d6e2f67c177eb89b353476a37feb84992d51
Former-commit-id: 4f374847b0fb9ea50923b376da12c73925d2c174
1.0
wanggang 5 years ago
parent 3068b81037
commit 45098aa0ae

@ -42,14 +42,14 @@ namespace TeacherExt.Controllers
/// <returns></returns> /// <returns></returns>
public FileResult Export() public FileResult Export()
{ {
var template = Path.Combine(this._env.ContentRootPath,"wwwroot", "teacher.xlsx"); var template = Path.Combine(this._env.ContentRootPath, "wwwroot", "teacher.xlsx");
using var fs = System.IO.File.OpenRead(template); using var fs = System.IO.File.OpenRead(template);
var wk = new XSSFWorkbook(fs); var wk = new XSSFWorkbook(fs);
var sheet = wk.GetSheetAt(0); var sheet = wk.GetSheetAt(0);
this.ExportInternal(sheet); this.ExportInternal(sheet);
using var ms = new MemoryStream(); using var ms = new MemoryStream();
wk.Write(ms); wk.Write(ms);
return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",$"教师列表_{DateTime.Now.ToString("yyyy_MM-dd_HH_mm_ss")}.xlsx"); 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) private void ExportInternal(ISheet sheet)
@ -89,13 +89,13 @@ namespace TeacherExt.Controllers
row.Order(10).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.IdNumber); row.Order(10).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.IdNumber);
row.Order(11).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JobStart.Value.ToString("yyyy-MM")); row.Order(11).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JobStart.Value.ToString("yyyy-MM"));
row.Order(12).CreateCell(++colIndex).SetStyle(style).SetType(CellType.Numeric).SetCellValue(teacher.JobAge.Value); row.Order(12).CreateCell(++colIndex).SetStyle(style).SetType(CellType.Numeric).SetCellValue(teacher.JobAge.Value);
row.Order(13).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.TeachDate.HasValue?teacher.TeachDate.Value.ToString("yyyy-MM"):""); row.Order(13).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.TeachDate.HasValue ? teacher.TeachDate.Value.ToString("yyyy-MM") : "");
row.Order(14).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.CurrentJobStart.HasValue ? teacher.CurrentJobStart.Value.ToString("yyyy-MM") : ""); row.Order(14).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.CurrentJobStart.HasValue ? teacher.CurrentJobStart.Value.ToString("yyyy-MM") : "");
row.Order(15).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.Politics); row.Order(15).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.Politics);
row.Order(16).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JoinPartyDate.HasValue ? teacher.JoinPartyDate.Value.ToString("yyyy-MM") : ""); 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(teacher.MaxTitle); row.Order(17).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.MaxTitle);
row.Order(18).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.MaxTitleStart.Value.ToString("yyyy-MM")); row.Order(18).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.MaxTitleStart.Value.ToString("yyyy-MM"));
if(teacher.IsJobAsMaxTitle.Value) if (teacher.IsJobAsMaxTitle.Value)
{ {
row.Order(19).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JobAsMaxTitleDate.Value.ToString("yyyy-MM")); row.Order(19).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JobAsMaxTitleDate.Value.ToString("yyyy-MM"));
row.Order(20).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String); row.Order(20).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String);
@ -113,14 +113,14 @@ namespace TeacherExt.Controllers
} }
row.Order(24).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.PostType); row.Order(24).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.PostType);
row.Order(25).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.PostGrade); row.Order(25).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.PostGrade);
row.Order(26).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.CurrentPostGradeStart.HasValue? teacher.CurrentPostGradeStart.Value.ToString("yyyy-MM") : ""); row.Order(26).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.CurrentPostGradeStart.HasValue ? teacher.CurrentPostGradeStart.Value.ToString("yyyy-MM") : "");
row.Order(27).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.EducationGrade); row.Order(27).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.EducationGrade);
row.Order(28).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.EducationGrade) ? "":teacher.EducationGradeDate.Value.ToString("yyyy-MM")); row.Order(28).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.EducationGrade) ? "" : teacher.EducationGradeDate.Value.ToString("yyyy-MM"));
row.Order(29).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchoolType); row.Order(29).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchoolType);
row.Order(30).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchool); row.Order(30).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchool);
row.Order(31).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchoolMajor); row.Order(31).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchoolMajor);
row.Order(32).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchoolEducation); row.Order(32).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchoolEducation);
row.Order(33).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchoolEducationDate.HasValue?teacher.FullTimeSchoolEducationDate.Value.ToString("yyyy-MM") :""); row.Order(33).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchoolEducationDate.HasValue ? teacher.FullTimeSchoolEducationDate.Value.ToString("yyyy-MM") : "");
row.Order(34).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchoolType); row.Order(34).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchoolType);
row.Order(35).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchool); row.Order(35).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchool);
row.Order(36).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchoolMajor); row.Order(36).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchoolMajor);
@ -128,15 +128,15 @@ namespace TeacherExt.Controllers
row.Order(38).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchoolEducationDate.HasValue ? teacher.FullTimeSchoolEducationDate.Value.ToString("yyyy-MM") : ""); row.Order(38).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchoolEducationDate.HasValue ? teacher.FullTimeSchoolEducationDate.Value.ToString("yyyy-MM") : "");
row.Order(39).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.MaxEducation); row.Order(39).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.MaxEducation);
row.Order(40).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.MaxDegree); row.Order(40).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.MaxDegree);
row.Order(41).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.IsClassTeacher?"是":"否"); row.Order(41).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.IsClassTeacher ? "是" : "否");
row.Order(42).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.MainTeachPeriod); row.Order(42).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.MainTeachPeriod);
row.Order(43).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.MainTeachSubject); row.Order(43).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.MainTeachSubject);
row.Order(44).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.MainTeachGrade); row.Order(44).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.MainTeachGrade);
row.Order(45).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.OtherTeachPeriod); row.Order(45).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.OtherTeachPeriod);
row.Order(46).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.OtherTeachSubject); row.Order(46).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.OtherTeachSubject);
if(teacher.HasPosition.Value) if (teacher.HasPosition.Value)
{ {
if(teacher.IsMiddleLevel.Value) if (teacher.IsMiddleLevel.Value)
{ {
row.Order(47).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.Position); row.Order(47).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.Position);
row.Order(48).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.PositionStart.HasValue ? teacher.PositionStart.Value.ToString("yyyy-MM") : ""); row.Order(48).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.PositionStart.HasValue ? teacher.PositionStart.Value.ToString("yyyy-MM") : "");
@ -171,25 +171,37 @@ namespace TeacherExt.Controllers
var colWidthList = new System.Collections.Generic.Dictionary<int, int>(); var colWidthList = new System.Collections.Generic.Dictionary<int, int>();
for (int i = 0; i < rowIndex; i++) for (int i = 0; i < rowIndex; i++)
{ {
var row = sheet.GetRow(i + 1); var row = sheet.GetRow(i);
for (int j = 0; j < colIndex; j++) for (int j = 0; j < colIndex; j++)
{ {
var key = j + 1; var cell = sheet.GetRow(i).GetCell(j);
var cell = sheet.GetRow(i).GetCell(key); if (!colWidthList.ContainsKey(j))
if(!colWidthList.ContainsKey(key))
{ {
colWidthList.Add(key, 0); colWidthList.Add(j, 0);
} }
var length = Encoding.UTF8.GetBytes(cell.ToString()).Count() + 1; var value = cell.ToString();
if(length> colWidthList[key]) var array = value.Split('\n');
var length = array.Select(o => Encoding.UTF8.GetBytes(o).Count()).Max() + 2;
if (length > colWidthList[j])
{ {
colWidthList[key] = length; if (!cell.IsMergedCell)
{
colWidthList[j] = length;
Console.WriteLine($">>>>>{j}:{length}:{value}");
}
} }
} }
} }
foreach (var item in colWidthList.Keys) foreach (var item in colWidthList.Keys)
{ {
sheet.SetColumnWidth(item,colWidthList[item]*256); var width = colWidthList[item] * 256;
if (width == 0)
{
continue;
}
sheet.SetColumnWidth(item, width);
Console.WriteLine($"{sheet.GetRow(2).GetCell(item)}:{item}:{colWidthList[item]}");
} }
} }

@ -15,7 +15,6 @@
<ItemGroup> <ItemGroup>
<None Include="wwwroot\lib\kindeditor\kindeditor-all-min.js" /> <None Include="wwwroot\lib\kindeditor\kindeditor-all-min.js" />
<None Include="wwwroot\lib\kindeditor\lang\zh-CN.js" /> <None Include="wwwroot\lib\kindeditor\lang\zh-CN.js" />
<None Include="wwwroot\teacher.xlsx" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@ -26,9 +25,4 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Infrastructure\Infrastructure.csproj" /> <ProjectReference Include="..\Infrastructure\Infrastructure.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Content Update="wwwroot\teacher.xlsx">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</Content>
</ItemGroup>
</Project> </Project>

Loading…
Cancel
Save