Commit 992bef89 by lcx

抽取数据格式调整

parent 93ae4c3d
......@@ -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)
{
if (cell == null) return;
......
......@@ -62,21 +62,21 @@ public static void WriteSheetHeader(ISheet sheet, PerSheetPoint point, SheetType
if (sheetType == SheetType.Workload)
{
var workloadCell = workloadFactor.GetOrCreate(headerFirstCellNum);
workloadCell.SetCellOValue(item.WorkloadFactor);
workloadCell.SetCellValue<decimal>(item.WorkloadFactor);
workloadCell.CellStyle = factorStyle;
}
else
{
var doctorCell = doctorFactor.GetOrCreate(headerFirstCellNum);
doctorCell.SetCellOValue(item.DoctorFactor);
doctorCell.SetCellValue<decimal>(item.DoctorFactor);
doctorCell.CellStyle = factorStyle;
var nurseCell = nurseFactor.GetOrCreate(headerFirstCellNum);
nurseCell.SetCellOValue(item.NurseFactor);
nurseCell.SetCellValue<decimal>(item.NurseFactor);
nurseCell.CellStyle = factorStyle;
var technicianCell = technicianFactor.GetOrCreate(headerFirstCellNum);
technicianCell.SetCellOValue(item.TechnicianFactor);
technicianCell.SetCellValue<decimal>(item.TechnicianFactor);
technicianCell.CellStyle = factorStyle;
}
......@@ -125,12 +125,12 @@ public static void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType s
if (sheetType == SheetType.Income)
{
cell.SetCellOValue(value);
cell.SetCellValue<decimal>(value);
cell.CellStyle = cellStyle;
}
else if (cell.CellType != CellType.Formula)
{
cell.SetCellOValue(value);
cell.SetCellValue<decimal>(value);
if (headers != null && headers.Contains(column))
{
cell.CellStyle = cellStyle;
......@@ -176,7 +176,7 @@ public static void WriteSheetData(ISheet sheet, PerSheetPoint point, SheetType s
else if (sheetType == SheetType.Income || (headers != null && headers.Contains(column)))
{
var value = deptData.FirstOrDefault(t => t.Category == column)?.Value;
cell.SetCellOValue(value);
cell.SetCellValue<decimal>(value);
cell.CellStyle = cellStyle;
}
}
......
......@@ -107,6 +107,8 @@ private void WriteDataToFile(string templateFile, string extractFile, int allotI
var models = exdict[ExDataDict.ExModule] as List<ex_module>;
ExtractHelper.CreateNotExistSheet(models, workbook);
var employeeDict = peremployeeRepository.GetEntities(t => t.AllotId == allotId);
WriteDataFactory factory = new WriteDataFactory();
for (int sheetIndex = 0; sheetIndex < workbook.NumberOfSheets; sheetIndex++)
{
......@@ -123,7 +125,7 @@ private void WriteDataToFile(string templateFile, string extractFile, int allotI
if (customer != null)
{
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);
}
}
......@@ -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)
{
case SheetType.Employee:
case SheetType.ClinicEmployee:
case SheetType.AccountBasic:
return peremployeeRepository.GetEntities(t => t.AllotId == allotId);
return employeeDict;
default:
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