Commit fc3a95ba by lcx

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

parents 754f20d3 5b42c000
......@@ -30,5 +30,10 @@ public class ExcelHeader
/// 工作量系数
/// </summary>
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
int headerFirstCellNum = 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++)
{
var category = columnHeader.GetCell(index).GetDecodeEscapes();
......@@ -53,13 +54,14 @@ public static void WriteSheetHeader(ISheet sheet, PerSheetPoint point, SheetType
}
else
{
var rows = new IRow[] { nurseFactor, doctorFactor, technicianFactor, columnHeader };
foreach (var item in rows)
{
var cell = item.GetCell(index);
if (cell != null)
item.RemoveCell(cell);
}
var column = columns.FirstOrDefault(w => w.ColumnName.NoBlank() == category);
if (column != null) column.Sort = index;
}
}
if (headerFirstCellNum > point.DataFirstCellNum.Value)
......@@ -69,7 +71,7 @@ public static void WriteSheetHeader(ISheet sheet, PerSheetPoint point, SheetType
if (columns == null || !columns.Any()) return;
// 补充excel中不存在的列
foreach (var item in columns)
foreach (var item in columns.OrderBy(t => t.Sort).ThenBy(t => t.ColumnName))
{
var columnCell = columnHeader.GetOrCreate(headerFirstCellNum);
columnCell.SetCellValue(item.ColumnName);
......
......@@ -56,6 +56,7 @@ public void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType sheetTyp
DoctorFactor = t.outer?.FirstOrDefault()?.YSZ,
NurseFactor = t.outer?.FirstOrDefault()?.HLZ,
TechnicianFactor = t.outer?.FirstOrDefault()?.YJZ,
Sort = 1000
}).ToList();
}
else
......@@ -63,6 +64,7 @@ public void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType sheetTyp
headers = categories.Select(t => new ExcelHeader
{
ColumnName = t,
Sort = 1000
}).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