多语言展示
当前在线:1571今日阅读:91今日分享:37

Java 在Excel中创建多级分组、折叠或展开分组

以下经验内容分享通过Java程序在Excel中创建多级分组、折叠或展开分组。可对行或列分组进行分组并设置明细数据是否展开或折叠。设置数据分组并展开或折叠时,可通过以下方法:方法一:通过方法sheet.groupByRows(int firstRow, int lastRow, boolean isCollapsed)设置行分组;通过方法sheet.groupByColumns(int firstColumnm, int lastColumn, boolean isCollapsed)设置列分组。方法二:通过方法sheet.getCellRange(String name).groupByRows(boolean isCollapsed)设置行分组;通过方法sheet.getCellRange(String name).groupByColumns(boolean isCollapsed)设置列分组。下面将通过Java代码示例展示具体实现方法。
工具/原料
1

Free Spire.XLS for Java(免费版)

2

IDEA

jar包获取及jar文件导入:

可通过E-iceblue中文官网下载,下载后,解压文件,将lib文件夹下的Spire.Xls.jar文件手动导入到Java程序;或者通过maven仓库下载,下载及导入方法可参考官网教程文档的(“支持-帮助文档-Licensing-通过 Maven 仓库安装 Spire 系列 Java 产品”)

示例1,通过方法一来实现:
1

import com.spire.xls.*;    import java.awt.*;    public class MultiLevelGroup_XLS {      public static void main(String[] args) {          //创建工作簿          Workbook wb = new Workbook();          //获取第一个工作表          Worksheet sheet = wb.getWorksheets().get(0);            //将数据写入单元格,并设置单元格样式          sheet.get('A1').setValue('A项目--项目计划');          sheet.get('A1').getStyle().getFont().setColor(new Color(0,0,255));          sheet.get('A1').getStyle().getFont().isBold(true);          sheet.get('B1').setValue('B项目--项目计划');          sheet.get('B1').getStyle().getFont().setColor(new Color(255,127,80));          sheet.get('B1').getStyle().getFont().isBold(true);          sheet.get('C1').setValue('C项目--项目计划');          sheet.get('C1').getStyle().getFont().setColor(new Color(50,205,50));          sheet.get('C1').getStyle().getFont().isBold(true);          sheet.get('A1:C1').autoFitColumns();//设置自适应列          sheet.get('A3').setValue('准备');          sheet.get('A3').getStyle().getFont().setColor(new Color(0,0,255));          sheet.get('A4').setValue('任务 1');          sheet.get('A5').setValue('任务 2');          sheet.getCellRange('A4:A5').borderAround(LineStyleType.Thin);          sheet.getCellRange('A4:A5').borderInside(LineStyleType.Thin);          sheet.get('A7').setValue('启动');          sheet.get('A7').getStyle().getFont().setColor(new Color(0,0,255));          sheet.get('A8').setValue('任务 1');          sheet.get('A9').setValue('任务 2');          sheet.getCellRange('A8:A9').borderAround(LineStyleType.Thin);          sheet.getCellRange('A8:A9').borderInside(LineStyleType.Thin);            //在isSummaryRowBelow方法中传入参数false,意思是将明细数据显示在下方          sheet.getPageSetup().isSummaryRowBelow(false);            //使用groupByRows方法对行进行分组,并设置分组展开或折叠          sheet.groupByRows(2,9,false);//按行分组,并展开第2行至第9行          sheet.groupByRows(4,5,false);          sheet.groupByRows(8,9,true);//按行分组,并折叠第8行和第9行          sheet.groupByColumns(2,3,false);//按列分组,并展开第2列和第3列            //保存文档          wb.saveToFile('NestedGroup.xlsx', ExcelVersion.Version2013);          wb.dispose();      }  }

2

创建结果:

示例2,通过方法二来实现:
1

import com.spire.xls.*;    public class ExpandAndCollapseGroups {      public static void main(String[] args) {          //加载文档          Workbook wb =new Workbook();          wb.loadFromFile('NestedGroup.xlsx');            //获取工作表          Worksheet sheet = wb.getWorksheets().get(0);            //获取单元格设置分组折叠、展开          sheet.getCellRange('A8:A9').groupByRows(false);//分组展开单元格所在行          sheet.getCellRange('A4:A5').groupByRows(true);//分组折叠单元格所在行          sheet.getCellRange('B1:C1').groupByColumns(true);//分组折叠单元格所在列            //保存文档          wb.saveToFile('ExpandOrCollapseGroup.xlsx',FileFormat.Version2013);          wb.dispose();      }  }

2

设置效果:

推荐信息