2020-12-29 11:50:37 +08:00

95 lines
4.6 KiB
Plaintext

#region 年度考核互评(评价)模板下载
public FileResult DownEvaluateTemplate()
{
string filePath = _hostingEnvironment.WebRootPath + "\\upload\\" + System.Guid.NewGuid().ToString() + ".xls";
try
{
HSSFWorkbook workBook = new HSSFWorkbook();
CreateAssessmentTemplateDto result = new CheckResultManagementAppService(_orgRepository, _tExemptExamEntity, _tCheckResultEntity, _tGroupDeclarationEntity).CreateAssessmentTemplate();
var gList = _tGroupDeclarationEntity.GetAll().Where(s => s.IsDeleted == false && s.Year == DateTime.Now.Year).GroupBy(s => s.GroupTime);
string sheetName = "";
foreach (var rekey in gList)
{
var rekeyLsts = rekey.ToList();
string sheet1 = rekeyLsts.Count() > 0 ? rekeyLsts[0].DeclareTypeName : "";
sheetName = rekey.Key == null ? "未分组" : sheet1 + Convert.ToDateTime(rekey.Key).ToString("yyyy年MM月dd日HH时mm分ss秒");
CreateEvaluateSheet(workBook, sheetName + "互评表", rekeyLsts, "互评表");
}
foreach (var rekey in gList)
{
var rekeyLsts = rekey.ToList();
string sheet1 = rekeyLsts.Count() > 0 ? rekeyLsts[0].DeclareTypeName : "";
sheetName = rekey.Key == null ? "未分组" : sheet1 + Convert.ToDateTime(rekey.Key).ToString("yyyy年MM月dd日HH时mm分ss秒");
CreateEvaluateSheet(workBook, sheetName + "专家打分表", rekeyLsts, "专家打分表");
}
if (Directory.Exists(filePath))
{
Directory.Delete(filePath);
}
using (FileStream file = new FileStream(filePath, FileMode.Create))
{
workBook.Write(file); //创建Excel文件。
file.Close();
}
}
catch (Exception ex)
{
string msg = ex.Message;
}
return File(new FileStream(filePath, FileMode.Open), "application/octet-stream", (DateTime.Now.Year + "年互评表模板" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls"));
}
private ISheet CreateEvaluateSheet(HSSFWorkbook workBook, string sheetName, List<TGroupDeclarationEntity> list, string ScoreTypeName)
{
ISheet sheet = workBook.CreateSheet(sheetName);
IRow RowHead = sheet.CreateRow(0);
string[] rows = new string[] { "序号", "单位名称", "互评分数" };
#region 标题合并单元格
ICellStyle cellStyle = workBook.CreateCellStyle();//声明样式
cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;//水平居中
cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;//垂直居中
IFont font = workBook.CreateFont();//声明字体
font.Boldweight = (Int16)FontBoldWeight.Bold;//加粗
font.FontHeightInPoints = 14;//字体大小
cellStyle.SetFont(font);//加入单元格
IRow row0 = sheet.CreateRow(0);//创建行
row0.HeightInPoints = 20;//行高
NPOI.SS.UserModel.ICell cell0 = row0.CreateCell(0);//创建单元格
cell0.SetCellValue(ScoreTypeName);//赋值
cell0.CellStyle = cellStyle;//设置样式
sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, 2));//合并单元格(第几行,到第几行,第几列,到第几列)
#endregion
#region 表头
IRow RowBody1 = sheet.CreateRow(1);
RowBody1.CreateCell(0).SetCellValue("序号");
sheet.AutoSizeColumn(0);
RowBody1.CreateCell(1).SetCellValue("单位名称");
sheet.AutoSizeColumn(1);
RowBody1.CreateCell(2).SetCellValue("互评分数");
sheet.AutoSizeColumn(2);
#endregion
for (int iRowIndex = 0; iRowIndex < list.Count; iRowIndex++)
{
IRow RowBody = sheet.CreateRow(iRowIndex + 2);
RowBody.CreateCell(0).SetCellValue((iRowIndex + 1).ToString());
sheet.AutoSizeColumn(0);
RowBody.CreateCell(1).SetCellValue(list[iRowIndex].OrganizationName);
sheet.AutoSizeColumn(1);
RowBody.CreateCell(2).SetCellValue("");
sheet.AutoSizeColumn(2);
}
return sheet;
}
#endregion