当Excel表格中的数据具有极强的层属关系时,我们可以制作一个层次分明的多级分组来对数据进行分级显示。本文将展示如何创建多级分组,并将分组符号显示在数据上方。
C#
//创建Wordbook实例
Workbook workbook = new Workbook();
//获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];
//写入模拟数据到单元格
sheet.Range["A1"].Value = "项目计划";
sheet.Range["A3"].Value = "筹备";
sheet.Range["A4"].Value = "任务 1";
sheet.Range["A5"].Value = "任务 2";
sheet.Range["A7"].Value = "启动";
sheet.Range["A8"].Value = "任务 1";
sheet.Range["A9"].Value = "任务 2";
//设置IsSummaryRowBelow为false, 即总结行显示在明细行上方
sheet.PageSetup.IsSummaryRowBelow = false;
//选择行进行一级分组
//参数false表示展开当前分组,若要隐藏设置成true
sheet.GroupByRows(2, 9, false);
//选择行进行二级分组
sheet.GroupByRows(4, 5, false);
sheet.GroupByRows(8, 9, false);
//定义一个CellStyle对象,设置单元格内字体颜色及加粗
CellStyle style = workbook.Styles.Add("style");
style.Font.Color = Color.CadetBlue;
style.Font.IsBold = true;
//应用单元格格式
sheet.Range["A1"].CellStyleName = style.Name;
sheet.Range["A3"].CellStyleName = style.Name;
sheet.Range["A7"].CellStyleName = style.Name;
//设置区域边框样式
sheet.Range["A4:A5"].BorderAround(LineStyleType.Thin);
sheet.Range["A4:A5"].BorderInside(LineStyleType.Thin);
sheet.Range["A8:A9"].BorderAround(LineStyleType.Thin);
sheet.Range["A8:A9"].BorderInside(LineStyleType.Thin);
//保存文档
workbook.SaveToFile("output.xlsx", ExcelVersion.Version2013);
VB.NET
'创建Wordbook实例
Dim workbook As New Workbook()
'获取第一个工作表
Dim sheet As Worksheet = workbook.Worksheets(0)
'写入模拟数据到单元格
sheet.Range("A1").Value = "项目计划"
sheet.Range("A3").Value = "筹备"
sheet.Range("A4").Value = "任务 1"
sheet.Range("A5").Value = "任务 2"
sheet.Range("A7").Value = "启动"
sheet.Range("A8").Value = "任务 1"
sheet.Range("A9").Value = "任务 2"
'设置IsSummaryRowBelow为false, 即总结行显示在明细行上方
sheet.PageSetup.IsSummaryRowBelow = False
'选择行进行一级分组
'参数false表示展开当前分组,若要隐藏设置成true
sheet.GroupByRows(2, 9, False)
'选择行进行二级分组
sheet.GroupByRows(4, 5, False)
sheet.GroupByRows(8, 9, False)
'定义一个CellStyle对象,设置单元格内字体颜色及加粗
Dim style As CellStyle = workbook.Styles.Add("style")
style.Font.Color = Color.CadetBlue
style.Font.IsBold = True
'应用单元格格式
sheet.Range("A1").CellStyleName = style.Name
sheet.Range("A3").CellStyleName = style.Name
sheet.Range("A7").CellStyleName = style.Name
'设置区域边框样式
sheet.Range("A4:A5").BorderAround(LineStyleType.Thin)
sheet.Range("A4:A5").BorderInside(LineStyleType.Thin)
sheet.Range("A8:A9").BorderAround(LineStyleType.Thin)
sheet.Range("A8:A9").BorderInside(LineStyleType.Thin)
'保存文档
workbook.SaveToFile("output.xlsx", ExcelVersion.Version2013)