Commit 992bef89 by lcx

抽取数据格式调整

parent 93ae4c3d
...@@ -39,6 +39,52 @@ public static void SetRowStyle(this IRow row, ICellStyle cellStyle) ...@@ -39,6 +39,52 @@ public static void SetRowStyle(this IRow row, ICellStyle cellStyle)
} }
} }
public static void SetCellValue<T>(this ICell cell, object value, T defaultValue = default)
{
if (cell == null) return;
try
{
var type = defaultValue.GetType();
switch (type.ToString())
{
#region SetValue
case "System.String"://字符串类型
cell.SetCellValue(ConvertHelper.To<string>(value));
break;
case "System.DateTime"://日期类型
cell.SetCellValue(ConvertHelper.To<DateTime>(value).ToString("yyyy/M/d"));
break;
case "System.Boolean"://布尔型
cell.SetCellValue(ConvertHelper.To<bool>(value));
break;
case "System.Int16"://整型
case "System.Int32":
case "System.Int64":
case "System.Byte":
cell.SetCellValue(ConvertHelper.To<int>(value));
break;
case "System.Decimal"://浮点型
case "System.Double":
cell.SetCellValue(ConvertHelper.To<double>(value));
break;
case "System.DBNull"://空值处理
cell.SetCellValue("");
break;
default:
cell.SetCellValue("");
break;
#endregion
}
}
catch
{
cell.SetCellValue("");
}
}
public static void SetCellOValue(this ICell cell, object value) public static void SetCellOValue(this ICell cell, object value)
{ {
if (cell == null) return; if (cell == null) return;
......
...@@ -62,21 +62,21 @@ public static void WriteSheetHeader(ISheet sheet, PerSheetPoint point, SheetType ...@@ -62,21 +62,21 @@ public static void WriteSheetHeader(ISheet sheet, PerSheetPoint point, SheetType
if (sheetType == SheetType.Workload) if (sheetType == SheetType.Workload)
{ {
var workloadCell = workloadFactor.GetOrCreate(headerFirstCellNum); var workloadCell = workloadFactor.GetOrCreate(headerFirstCellNum);
workloadCell.SetCellOValue(item.WorkloadFactor); workloadCell.SetCellValue<decimal>(item.WorkloadFactor);
workloadCell.CellStyle = factorStyle; workloadCell.CellStyle = factorStyle;
} }
else else
{ {
var doctorCell = doctorFactor.GetOrCreate(headerFirstCellNum); var doctorCell = doctorFactor.GetOrCreate(headerFirstCellNum);
doctorCell.SetCellOValue(item.DoctorFactor); doctorCell.SetCellValue<decimal>(item.DoctorFactor);
doctorCell.CellStyle = factorStyle; doctorCell.CellStyle = factorStyle;
var nurseCell = nurseFactor.GetOrCreate(headerFirstCellNum); var nurseCell = nurseFactor.GetOrCreate(headerFirstCellNum);
nurseCell.SetCellOValue(item.NurseFactor); nurseCell.SetCellValue<decimal>(item.NurseFactor);
nurseCell.CellStyle = factorStyle; nurseCell.CellStyle = factorStyle;
var technicianCell = technicianFactor.GetOrCreate(headerFirstCellNum); var technicianCell = technicianFactor.GetOrCreate(headerFirstCellNum);
technicianCell.SetCellOValue(item.TechnicianFactor); technicianCell.SetCellValue<decimal>(item.TechnicianFactor);
technicianCell.CellStyle = factorStyle; technicianCell.CellStyle = factorStyle;
} }
...@@ -125,12 +125,12 @@ public static void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType s ...@@ -125,12 +125,12 @@ public static void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType s
if (sheetType == SheetType.Income) if (sheetType == SheetType.Income)
{ {
cell.SetCellOValue(value); cell.SetCellValue<decimal>(value);
cell.CellStyle = cellStyle; cell.CellStyle = cellStyle;
} }
else if (cell.CellType != CellType.Formula) else if (cell.CellType != CellType.Formula)
{ {
cell.SetCellOValue(value); cell.SetCellValue<decimal>(value);
if (headers != null && headers.Contains(column)) if (headers != null && headers.Contains(column))
{ {
cell.CellStyle = cellStyle; cell.CellStyle = cellStyle;
...@@ -176,7 +176,7 @@ public static void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType s ...@@ -176,7 +176,7 @@ public static void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType s
else if (sheetType == SheetType.Income || (headers != null && headers.Contains(column))) else if (sheetType == SheetType.Income || (headers != null && headers.Contains(column)))
{ {
var value = deptData.FirstOrDefault(t => t.Category == column)?.Value; var value = deptData.FirstOrDefault(t => t.Category == column)?.Value;
cell.SetCellOValue(value); cell.SetCellValue<decimal>(value);
cell.CellStyle = cellStyle; cell.CellStyle = cellStyle;
} }
} }
......
...@@ -107,6 +107,8 @@ private void WriteDataToFile(string templateFile, string extractFile, int allotI ...@@ -107,6 +107,8 @@ private void WriteDataToFile(string templateFile, string extractFile, int allotI
var models = exdict[ExDataDict.ExModule] as List<ex_module>; var models = exdict[ExDataDict.ExModule] as List<ex_module>;
ExtractHelper.CreateNotExistSheet(models, workbook); ExtractHelper.CreateNotExistSheet(models, workbook);
var employeeDict = peremployeeRepository.GetEntities(t => t.AllotId == allotId);
WriteDataFactory factory = new WriteDataFactory(); WriteDataFactory factory = new WriteDataFactory();
for (int sheetIndex = 0; sheetIndex < workbook.NumberOfSheets; sheetIndex++) for (int sheetIndex = 0; sheetIndex < workbook.NumberOfSheets; sheetIndex++)
{ {
...@@ -123,7 +125,7 @@ private void WriteDataToFile(string templateFile, string extractFile, int allotI ...@@ -123,7 +125,7 @@ private void WriteDataToFile(string templateFile, string extractFile, int allotI
if (customer != null) if (customer != null)
{ {
var exdata = extractDto.Where(t => t.SheetName.NoBlank() == sheet.SheetName.NoBlank())?.ToList(); var exdata = extractDto.Where(t => t.SheetName.NoBlank() == sheet.SheetName.NoBlank())?.ToList();
var data = GetDataBySheetType(allotId, sheetType, exdata); var data = GetDataBySheetType(sheetType, exdata, employeeDict);
customer.WriteSheetData(sheet, point, sheetType, style, data, exdict); customer.WriteSheetData(sheet, point, sheetType, style, data, exdict);
} }
} }
...@@ -134,14 +136,14 @@ private void WriteDataToFile(string templateFile, string extractFile, int allotI ...@@ -134,14 +136,14 @@ private void WriteDataToFile(string templateFile, string extractFile, int allotI
} }
} }
private object GetDataBySheetType(int allotId, SheetType sheetType, List<ExtractTransDto> extractDto) private object GetDataBySheetType(SheetType sheetType, List<ExtractTransDto> extractDto, List<per_employee> employeeDict)
{ {
switch (sheetType) switch (sheetType)
{ {
case SheetType.Employee: case SheetType.Employee:
case SheetType.ClinicEmployee: case SheetType.ClinicEmployee:
case SheetType.AccountBasic: case SheetType.AccountBasic:
return peremployeeRepository.GetEntities(t => t.AllotId == allotId); return employeeDict;
default: default:
return extractDto; return extractDto;
} }
......
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