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代码示例展示具体实现方法。

使用工具:Free Spire.XLS for Java(免费版)

Jar包获取及导入:可通过官网下载jar包,并解压,将lib文件夹下的Spire.Xls.jar导入Java程序;或者通过Maven仓库下载导入。

Java代码示例

示例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,通过方法二来实现:

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();
  }
}

设置效果前后对比:

到此这篇关于Java在Excel中创建多级分组、折叠或展开分组的实现的文章就介绍到这了,更多相关Java在Excel创建多级分组和展开分组内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • java读取excel文件的两种方法

    本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 方式一: 借用 package com.ij34.util; /** * @author Admin * @date 创建时间:2017年8月29日 下午2:07:59 * @version 1.0 *@type_name myclass */ import java.io.File; import java.io.IOException; import jxl.Cell; import jxl.Sheet;

  • 在java poi导入Excel通用工具类示例详解

    前言 本文主要给大家介绍了关于java poi导入Excel通用工具类的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 问题引入和分析 提示:如果不想看罗嗦的文章,可以直接到最后点击源码下载运行即可 最近在做一个导入Excel的功能,在做之前在百度上面查找"java通用导入Excel工具类",没有查到,大多数都是java通用导出Excel.后来仔细想想,导出可以利用java的反射,做成通用的,放进相应的实体成员变量中,导入为什么不可以呢?也是可以的,不过在做

  • JAVA使用POI获取Excel的列数与行数

    前言 报表输出是Java应用开发中经常涉及的内容,而一般的报表往往缺乏通用性,不方便用户进行个性化编辑.Java程序由于其跨平台特性,不能直接操纵Excel.因此,本文探讨一下POI视线Java程序进行Excel中列数和行数的读取. 方法如下 //获取指定行,索引从0开始 hssfRow=hssfSheet.getRow(1); //获取指定列,索引从0开始 hssfCell=hssfRow.getCell((short)6); //获取总行数 //int rowNum=hssfSheet.ge

  • java常用工具类之Excel操作类及依赖包下载

    依赖包下载:http://xiazai.jb51.net/201407/tools/java-excel-dependency(jb51.net).rar Excel工具类ExcelUtil.java源码: package com.itjh.javaUtil; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStr

  • java使用poi读取excel内容方法实例

    复制代码 代码如下: import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.nio.channels.FileChannel;import java.text.DecimalFormat;import java.text.SimpleDat

  • Java读取Excel文件内容的简单实例

    借助于apathe的poi.jar,由于上传文件不支持.jar所以请下载后将文件改为.jar,在应用程序中添加poi.jar包,并将需要读取的excel文件放入根目录即可 本例使用java来读取excel的内容并展出出结果,代码如下: 复制代码 代码如下: import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundExceptio

  • Java解析Excel文件并把数据存入数据库

    前段时间做一个小项目,为了同时存储多条数据,其中有一个功能是解析Excel并把其中的数据存入对应数据库中.花了两天时间,不过一天多是因为用了"upload"关键字作为URL从而导致总报同一个错,最后在同学的帮助下顺利解决,下面我把自己用"POI"解析的方法总结出来供大家参考(我用的是SpingMVC和hibernate框架). 1.web.xml中的配置文件 web.xml中的配置文件就按照这种方式写,只需要把"application.xml"换

  • Java数据导入功能之读取Excel文件实例

    在编程中经常需要使用到表格(报表)的处理主要以Excel表格为主.下面给出用java读取excel表格方法: 1.添加jar文件 java导入导出Excel文件要引入jxl.jar包,最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件.下载地址:http://www.andykhan.com/jexcelapi/ 2.jxl对Excel表格的认识 (1)每个单元格的位置认为是由一个二维坐标(i,j)给定,其中i表示列,j表示

  • java读取excel文件并复制(copy)文件到指定目录示例

    复制代码 代码如下: mport java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List; import org.apach

  • Java数据导出功能之导出Excel文件实例

    在编程中经常需要使用到表格(报表)的处理主要以Excel表格为主.下面给出用java写入数据到excel表格方法: 1.添加jar文件 java导入导出Excel文件要引入jxl.jar包,最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件.下载地址:http://www.andykhan.com/jexcelapi/ 2.jxl对Excel表格的认识 可以参见:http://www.jb51.net/article/686

随机推荐