Commit 5de67c14 by lcx

抽取修改

parent 3a4266e1
...@@ -577,7 +577,7 @@ private void WriteSpecialUnit(ISheet sheet, IPerSheetDataRead sheetRead, List<sy ...@@ -577,7 +577,7 @@ private void WriteSpecialUnit(ISheet sheet, IPerSheetDataRead sheetRead, List<sy
var dictionary = new Dictionary<string, Func<mod_special, List<im_specialunit>, object>> var dictionary = new Dictionary<string, Func<mod_special, List<im_specialunit>, object>>
{ {
{ "科室", (special,lastallot) => special.Department }, { "科室", (special,lastallot) => special.Department },
{ "人数", (special,lastallot) => lastallot.Where(t=>special.Department == t.Department).Sum(t=>t.Number) }, { "人数", (special,lastallot) => lastallot.Where(t=>special.Department == t.Department).Max(t=>t.Number) },
{ "量化指标", (special,lastallot) => special.Target}, { "量化指标", (special,lastallot) => special.Target},
{ "量化指标绩效分值",(special,lastallot) => special.TargetFactor }, { "量化指标绩效分值",(special,lastallot) => special.TargetFactor },
{ "调节系数", (special,lastallot) => special.AdjustFactor }, { "调节系数", (special,lastallot) => special.AdjustFactor },
...@@ -725,7 +725,7 @@ private void WriteHeaderAndFactor(ISheet sheet, IPerSheetDataRead sheetRead, Lis ...@@ -725,7 +725,7 @@ private void WriteHeaderAndFactor(ISheet sheet, IPerSheetDataRead sheetRead, Lis
if (cellItems == null || !cellItems.Any()) return; if (cellItems == null || !cellItems.Any()) return;
#region 新增模板中不存在的列头 #region 新增模板中不存在的列头
var lastcellIndex = head.LastCellNum; var lastcellIndex = isNewTemp ? sheetRead.Point.HeaderFirstCellNum.Value + 4 : head.LastCellNum;
foreach (var item in cellItems) foreach (var item in cellItems)
{ {
var headcell = GetOrCreate(head, lastcellIndex); var headcell = GetOrCreate(head, lastcellIndex);
...@@ -774,13 +774,13 @@ private void WriteSheetData(ISheet sheet, IPerSheetDataRead sheetRead, List<Acco ...@@ -774,13 +774,13 @@ private void WriteSheetData(ISheet sheet, IPerSheetDataRead sheetRead, List<Acco
var row = sheet.GetRow(i); var row = sheet.GetRow(i);
if (row != null) if (row != null)
{ {
var department = row.GetCell(3)?.ToString(); var department = row.GetCell(3)?.ToString(); // 科室名称
if (string.IsNullOrEmpty(department)) continue; if (string.IsNullOrEmpty(department)) continue;
var deptData = allExtract.Where(t => t.Department == department); var deptData = allExtract.Where(t => t.Department == department);
if (deptData == null || !deptData.Any()) continue; if (deptData == null || !deptData.Any()) continue;
for (int j = rowIndex; j < head.LastCellNum; j++) for (int j = 4; j < head.LastCellNum; j++)
{ {
var headName = head.GetCell(j).StringCellValue; var headName = head.GetCell(j).StringCellValue;
var newCell = GetOrCreate(row, j); var newCell = GetOrCreate(row, j);
...@@ -810,7 +810,7 @@ private void WriteSheetData(ISheet sheet, IPerSheetDataRead sheetRead, List<Acco ...@@ -810,7 +810,7 @@ private void WriteSheetData(ISheet sheet, IPerSheetDataRead sheetRead, List<Acco
if (allExtract == null || !allExtract.Any()) return; if (allExtract == null || !allExtract.Any()) return;
#region 补充新的科室及数据 #region 补充新的科室及数据
var lastrowIndex = sheet.LastRowNum + 1; var lastrowIndex = isNewTemp ? rowIndex : sheet.LastRowNum + 1;
foreach (var department in allExtract.Select(t => t.Department).Where(t => !string.IsNullOrEmpty(t)).Distinct()) foreach (var department in allExtract.Select(t => t.Department).Where(t => !string.IsNullOrEmpty(t)).Distinct())
{ {
var row = sheet.CreateRow(lastrowIndex); var row = sheet.CreateRow(lastrowIndex);
...@@ -880,7 +880,7 @@ private void WriteWorkHeader(ISheet sheet, IPerSheetDataRead sheetRead, List<mod ...@@ -880,7 +880,7 @@ private void WriteWorkHeader(ISheet sheet, IPerSheetDataRead sheetRead, List<mod
{ {
#region 过滤历史模板中已有的列头 #region 过滤历史模板中已有的列头
//写入列头信息 //写入列头信息
int cellStartIndex = sheetRead.Point.HeaderFirstCellNum.Value + 4; int cellStartIndex = sheetRead.Point.HeaderFirstCellNum.Value + 2;
for (int i = cellStartIndex; i < head.LastCellNum; i++) for (int i = cellStartIndex; i < head.LastCellNum; i++)
{ {
var cellvalue = head.GetCell(i)?.ToString(); var cellvalue = head.GetCell(i)?.ToString();
...@@ -893,7 +893,7 @@ private void WriteWorkHeader(ISheet sheet, IPerSheetDataRead sheetRead, List<mod ...@@ -893,7 +893,7 @@ private void WriteWorkHeader(ISheet sheet, IPerSheetDataRead sheetRead, List<mod
if (cellItems == null || !cellItems.Any()) return; if (cellItems == null || !cellItems.Any()) return;
#region 新增模板中不存在的列头 #region 新增模板中不存在的列头
var lastcellIndex = head.LastCellNum; var lastcellIndex = isNewTemp ? sheetRead.Point.HeaderFirstCellNum.Value + 2 : head.LastCellNum;
foreach (var item in cellItems) foreach (var item in cellItems)
{ {
var headcell = GetOrCreate(head, lastcellIndex); var headcell = GetOrCreate(head, lastcellIndex);
...@@ -930,13 +930,13 @@ private void WriteWorkData(ISheet sheet, IPerSheetDataRead sheetRead, List<Accou ...@@ -930,13 +930,13 @@ private void WriteWorkData(ISheet sheet, IPerSheetDataRead sheetRead, List<Accou
var row = sheet.GetRow(i); var row = sheet.GetRow(i);
if (row != null) if (row != null)
{ {
var department = row.GetCell(1)?.ToString(); var department = row.GetCell(1)?.ToString(); // 科室名称
if (string.IsNullOrEmpty(department)) continue; if (string.IsNullOrEmpty(department)) continue;
var deptData = allExtract.Where(t => t.Department == department); var deptData = allExtract.Where(t => t.Department == department);
if (deptData == null || !deptData.Any()) continue; if (deptData == null || !deptData.Any()) continue;
for (int j = rowIndex; j < head.LastCellNum; j++) for (int j = 2; j < head.LastCellNum; j++)
{ {
var headName = head.GetCell(j).StringCellValue; var headName = head.GetCell(j).StringCellValue;
var newCell = GetOrCreate(row, j); var newCell = GetOrCreate(row, j);
...@@ -960,7 +960,7 @@ private void WriteWorkData(ISheet sheet, IPerSheetDataRead sheetRead, List<Accou ...@@ -960,7 +960,7 @@ private void WriteWorkData(ISheet sheet, IPerSheetDataRead sheetRead, List<Accou
if (allExtract == null || !allExtract.Any()) return; if (allExtract == null || !allExtract.Any()) return;
#region 补充新的科室及数据 #region 补充新的科室及数据
var lastrowIndex = sheet.LastRowNum + 1; var lastrowIndex = isNewTemp ? rowIndex : sheet.LastRowNum + 1;
foreach (var department in allExtract.Select(t => t.Department).Where(t => !string.IsNullOrEmpty(t)).Distinct()) foreach (var department in allExtract.Select(t => t.Department).Where(t => !string.IsNullOrEmpty(t)).Distinct())
{ {
var row = sheet.CreateRow(lastrowIndex); var row = sheet.CreateRow(lastrowIndex);
...@@ -1136,7 +1136,7 @@ public void OutToExcelCell(ICell cell, object obj) ...@@ -1136,7 +1136,7 @@ public void OutToExcelCell(ICell cell, object obj)
string value = obj?.ToString() ?? ""; string value = obj?.ToString() ?? "";
try try
{ {
var type = obj.GetType(); var type = obj?.GetType() ?? typeof(string);
switch (type.ToString()) switch (type.ToString())
{ {
case "System.String"://字符串类型 case "System.String"://字符串类型
......
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