Commit fc3a95ba by lcx

Merge branch 'hotfix/列保留原始顺序'

parents 754f20d3 5b42c000
...@@ -30,5 +30,10 @@ public class ExcelHeader ...@@ -30,5 +30,10 @@ public class ExcelHeader
/// 工作量系数 /// 工作量系数
/// </summary> /// </summary>
public decimal? WorkloadFactor { get; set; } public decimal? WorkloadFactor { get; set; }
/// <summary>
/// 排序
/// </summary>
public int Sort { get; set; }
} }
} }
...@@ -41,6 +41,7 @@ public static void WriteSheetHeader(ISheet sheet, PerSheetPoint point, SheetType ...@@ -41,6 +41,7 @@ public static void WriteSheetHeader(ISheet sheet, PerSheetPoint point, SheetType
int headerFirstCellNum = point.DataFirstCellNum.Value; int headerFirstCellNum = point.DataFirstCellNum.Value;
if (columnHeader.LastCellNum > point.DataFirstCellNum.Value) if (columnHeader.LastCellNum > point.DataFirstCellNum.Value)
{ {
var rows = new IRow[] { nurseFactor, doctorFactor, technicianFactor, columnHeader };
for (int index = point.DataFirstCellNum.Value; index < columnHeader.LastCellNum; index++) for (int index = point.DataFirstCellNum.Value; index < columnHeader.LastCellNum; index++)
{ {
var category = columnHeader.GetCell(index).GetDecodeEscapes(); var category = columnHeader.GetCell(index).GetDecodeEscapes();
...@@ -53,13 +54,14 @@ public static void WriteSheetHeader(ISheet sheet, PerSheetPoint point, SheetType ...@@ -53,13 +54,14 @@ public static void WriteSheetHeader(ISheet sheet, PerSheetPoint point, SheetType
} }
else else
{ {
var rows = new IRow[] { nurseFactor, doctorFactor, technicianFactor, columnHeader };
foreach (var item in rows) foreach (var item in rows)
{ {
var cell = item.GetCell(index); var cell = item.GetCell(index);
if (cell != null) if (cell != null)
item.RemoveCell(cell); item.RemoveCell(cell);
} }
var column = columns.FirstOrDefault(w => w.ColumnName.NoBlank() == category);
if (column != null) column.Sort = index;
} }
} }
if (headerFirstCellNum > point.DataFirstCellNum.Value) if (headerFirstCellNum > point.DataFirstCellNum.Value)
...@@ -69,7 +71,7 @@ public static void WriteSheetHeader(ISheet sheet, PerSheetPoint point, SheetType ...@@ -69,7 +71,7 @@ public static void WriteSheetHeader(ISheet sheet, PerSheetPoint point, SheetType
if (columns == null || !columns.Any()) return; if (columns == null || !columns.Any()) return;
// 补充excel中不存在的列 // 补充excel中不存在的列
foreach (var item in columns) foreach (var item in columns.OrderBy(t => t.Sort).ThenBy(t => t.ColumnName))
{ {
var columnCell = columnHeader.GetOrCreate(headerFirstCellNum); var columnCell = columnHeader.GetOrCreate(headerFirstCellNum);
columnCell.SetCellValue(item.ColumnName); columnCell.SetCellValue(item.ColumnName);
......
...@@ -56,6 +56,7 @@ public void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType sheetTyp ...@@ -56,6 +56,7 @@ public void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType sheetTyp
DoctorFactor = t.outer?.FirstOrDefault()?.YSZ, DoctorFactor = t.outer?.FirstOrDefault()?.YSZ,
NurseFactor = t.outer?.FirstOrDefault()?.HLZ, NurseFactor = t.outer?.FirstOrDefault()?.HLZ,
TechnicianFactor = t.outer?.FirstOrDefault()?.YJZ, TechnicianFactor = t.outer?.FirstOrDefault()?.YJZ,
Sort = 1000
}).ToList(); }).ToList();
} }
else else
...@@ -63,6 +64,7 @@ public void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType sheetTyp ...@@ -63,6 +64,7 @@ public void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType sheetTyp
headers = categories.Select(t => new ExcelHeader headers = categories.Select(t => new ExcelHeader
{ {
ColumnName = t, ColumnName = t,
Sort = 1000
}).ToList(); }).ToList();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment