导出合并行及合并列
时间: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;
}
原文地址:https://www.cnblogs.com/zmldz/p/15384911.html
- 使用Buck构建Android工程
- android 实现淘宝收益图的折线
- React Native入门(三)组件的Props(属性)和State(状态)
- Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)【Dalston版】
- PNG图片压缩对比分析
- 关于M4A文件的随机访问
- (whh仅供自己参考)进行ip网络请求的步骤
- HTML中的javascript交互
- Spring Cloud构建微服务架构:分布式配置中心【Dalston版】
- [Android] Toast问题深度剖析(二)
- [Android] Toast问题深度剖析(一)
- android离线缓存技术
- 浅谈ViewModel
- Android深入理解JNI(二)类型转换、方法签名和JNIEnv
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Mongodb分页查询优化下
- MySQL 案例:大表改列的新技巧(Generated Column)
- Spark 2.2 on K8S Dynamic Resource Allocation
- Java中异常处理的9个最佳实践
- Mongodb执行计划
- Spark 2.2/2.3/2.4 的 Dynamic Resource Allocation
- 04-操作文件与目录
- 05-命令的使用
- 缓存穿透、缓存击穿、缓存雪崩看这篇就够了,文末还送福利哦!
- 百万并发「零拷贝」技术系列之经典案例Netty
- 什么是大O表示法
- 06-1重定向
- sbt 项目导入问题
- Spark 程序优化建议
- Spark persist MEMORY_AND_DISK & DISK_ONLY