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>
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);
var wk = new XSSFWorkbook(fs);
var sheet = wk.GetSheetAt(0);
this.ExportInternal(sheet);
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");
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)
@ -89,13 +89,13 @@ namespace TeacherExt.Controllers
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(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(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(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"));
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(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(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(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(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(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(35).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchool);
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(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(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(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(45).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.OtherTeachPeriod);
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(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>();
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++)
{
var key = j + 1;
var cell = sheet.GetRow(i).GetCell(key);
if(!colWidthList.ContainsKey(key))
var cell = sheet.GetRow(i).GetCell(j);
if (!colWidthList.ContainsKey(j))
{
colWidthList.Add(key, 0);
colWidthList.Add(j, 0);
}
var length = Encoding.UTF8.GetBytes(cell.ToString()).Count() + 1;
if(length> colWidthList[key])
var value = cell.ToString();
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)
{
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>
<None Include="wwwroot\lib\kindeditor\kindeditor-all-min.js" />
<None Include="wwwroot\lib\kindeditor\lang\zh-CN.js" />
<None Include="wwwroot\teacher.xlsx" />
</ItemGroup>
<ItemGroup>
@ -26,9 +25,4 @@
<ItemGroup>
<ProjectReference Include="..\Infrastructure\Infrastructure.csproj" />
</ItemGroup>
<ItemGroup>
<Content Update="wwwroot\teacher.xlsx">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</Content>
</ItemGroup>
</Project>

Loading…
Cancel
Save