匯出合併行及合併列
阿新 • • 發佈:2021-10-09
[HttpGet] public async Task<ActionResult> DownTestFile(RedScarfBadgeManage.Dto.RedScarfBadgeStudentListByConditionInput input) { using (var client = new WebClient()) { byte[] bytes =await _RedScarfBadgeManageAppService.ExportRedScarfBadgeStudentListByConditionToExcel(input); return File(bytes, "application/octet-stream", "ceshi.xlsx"); } }
MemoryStream stream = new MemoryStream(); ExcelPackage.LicenseContext = LicenseContext.NonCommercial; using (ExcelPackage package = new ExcelPackage(stream)) { ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Test"); worksheet.OutLineApplyStyle = true; //新增表頭 worksheet.Cells[1, 1].Value = "學校"; worksheet.Cells[1, 1].Style.Font.Bold = true; worksheet.Cells[1, 2].Value = "年級"; worksheet.Cells[1, 2].Style.Font.Bold = true; worksheet.Cells[1, 3].Value = "班級"; worksheet.Cells[1, 3].Style.Font.Bold = true; worksheet.Cells[1, 4].Value = "登入賬號"; worksheet.Cells[1, 4].Style.Font.Bold = true; worksheet.Cells[1, 5].Value = "學生姓名"; worksheet.Cells[1, 5].Style.Font.Bold = true; worksheet.Cells[1, 6].Value = "獎章總數"; worksheet.Cells[1, 6].Style.Font.Bold = true; worksheet.Cells[2, 1].Value = "學校"; worksheet.Cells[2, 1].Style.Font.Bold = true; worksheet.Cells[2, 2].Value = "年級"; worksheet.Cells[2, 2].Style.Font.Bold = true; worksheet.Cells[2, 3].Value = "班級"; worksheet.Cells[2, 3].Style.Font.Bold = true; worksheet.Cells[2, 4].Value = "登入賬號"; worksheet.Cells[2, 4].Style.Font.Bold = true; worksheet.Cells[2, 5].Value = "學生姓名"; worksheet.Cells[2, 5].Style.Font.Bold = true; worksheet.Cells[2, 6].Value = "獎章總數"; worksheet.Cells[2, 6].Style.Font.Bold = true; //合併列(開始行,開始列,結束行,結束列) MergeColCells(worksheet, 1, 1, 2, 1); MergeColCells(worksheet, 1, 2, 2, 2); MergeColCells(worksheet, 1, 3, 2, 3); MergeColCells(worksheet, 1, 4, 2, 4); MergeColCells(worksheet, 1, 5, 2, 5); MergeColCells(worksheet, 1, 6, 2, 6); var i = 7; var j = 0; foreach (var m in cList) { j = i; foreach (var n in m.BadgeChildDto) { worksheet.Cells[1, i].Value = m.ChapterTypeName; worksheet.Cells[1, i].Style.Font.Bold = true; worksheet.Cells[2, i].Value = n.BadgeName; worksheet.Cells[2, i].Style.Font.Bold = true; i++; } MergeColCells(worksheet, 1, j, 1, i-1); } package.Save(); } return stream.GetBuffer();
/// <summary> /// 合併單元格 /// </summary> /// <param name="sheet"></param> public static void MergeColCells(ExcelWorksheet sheet, int fromRow, int fromCol,int toRow,int toCol) { sheet.Cells[fromRow,fromCol,toRow,toCol].Merge = true; sheet.Cells[fromRow, fromCol, toRow, toCol].Style.VerticalAlignment = OfficeOpenXml.Style.ExcelVerticalAlignment.Center; sheet.Cells[fromRow, fromCol, toRow, toCol].Style.HorizontalAlignment = OfficeOpenXml.Style.ExcelHorizontalAlignment.Center; }