Java在Excel中創(chuàng)建多級分組、折疊或展開分組的實(shí)現(xiàn)
本文介紹通過Java程序在Excel創(chuàng)建分組的方法,可對行或列分組進(jìn)行分組并設(shè)置明細(xì)數(shù)據(jù)是否展開或折疊。設(shè)置數(shù)據(jù)分組并展開或折疊時(shí),可通過以下方法:
方法一:
通過方法sheet.groupByRows(int firstRow, int lastRow, boolean isCollapsed)設(shè)置行分組;通過方法sheet.groupByColumns(int firstColumnm, int lastColumn, boolean isCollapsed)設(shè)置列分組。
方法二:
通過方法sheet.getCellRange(String name).groupByRows(boolean isCollapsed)設(shè)置行分組;通過方法sheet.getCellRange(String name).groupByColumns(boolean isCollapsed)設(shè)置列分組。
下面將通過Java代碼示例展示具體實(shí)現(xiàn)方法。
使用工具:Free Spire.XLS for Java(免費(fèi)版)
Jar包獲取及導(dǎo)入:可通過官網(wǎng)下載jar包,并解壓,將lib文件夾下的Spire.Xls.jar導(dǎo)入Java程序;或者通過Maven倉庫下載導(dǎo)入。
Java代碼示例
示例1,通過方法一來實(shí)現(xiàn):
import com.spire.xls.*;
import java.awt.*;
public class MultiLevelGroup_XLS {
public static void main(String[] args) {
//創(chuàng)建工作簿
Workbook wb = new Workbook();
//獲取第一個(gè)工作表
Worksheet sheet = wb.getWorksheets().get(0);
//將數(shù)據(jù)寫入單元格,并設(shè)置單元格樣式
sheet.get("A1").setValue("A項(xiàng)目--項(xiàng)目計(jì)劃");
sheet.get("A1").getStyle().getFont().setColor(new Color(0,0,255));
sheet.get("A1").getStyle().getFont().isBold(true);
sheet.get("B1").setValue("B項(xiàng)目--項(xiàng)目計(jì)劃");
sheet.get("B1").getStyle().getFont().setColor(new Color(255,127,80));
sheet.get("B1").getStyle().getFont().isBold(true);
sheet.get("C1").setValue("C項(xiàng)目--項(xiàng)目計(jì)劃");
sheet.get("C1").getStyle().getFont().setColor(new Color(50,205,50));
sheet.get("C1").getStyle().getFont().isBold(true);
sheet.get("A1:C1").autoFitColumns();//設(shè)置自適應(yīng)列
sheet.get("A3").setValue("準(zhǔn)備");
sheet.get("A3").getStyle().getFont().setColor(new Color(0,0,255));
sheet.get("A4").setValue("任務(wù) 1");
sheet.get("A5").setValue("任務(wù) 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("任務(wù) 1");
sheet.get("A9").setValue("任務(wù) 2");
sheet.getCellRange("A8:A9").borderAround(LineStyleType.Thin);
sheet.getCellRange("A8:A9").borderInside(LineStyleType.Thin);
//在isSummaryRowBelow方法中傳入?yún)?shù)false,意思是將明細(xì)數(shù)據(jù)顯示在下方
sheet.getPageSetup().isSummaryRowBelow(false);
//使用groupByRows方法對行進(jìn)行分組,并設(shè)置分組展開或折疊
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();
}
}
創(chuàng)建結(jié)果:

示例2,通過方法二來實(shí)現(xiàn):
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);
//獲取單元格設(shè)置分組折疊、展開
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();
}
}
設(shè)置效果前后對比:

到此這篇關(guān)于Java在Excel中創(chuàng)建多級分組、折疊或展開分組的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Java在Excel創(chuàng)建多級分組和展開分組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java讀取Excel文件內(nèi)容的簡單實(shí)例
- Java數(shù)據(jù)導(dǎo)出功能之導(dǎo)出Excel文件實(shí)例
- Java數(shù)據(jù)導(dǎo)入功能之讀取Excel文件實(shí)例
- JAVA使用POI獲取Excel的列數(shù)與行數(shù)
- Java解析Excel文件并把數(shù)據(jù)存入數(shù)據(jù)庫
- java使用poi讀取excel內(nèi)容方法實(shí)例
- java讀取excel文件的兩種方法
- java讀取excel文件并復(fù)制(copy)文件到指定目錄示例
- java常用工具類之Excel操作類及依賴包下載
- 在java poi導(dǎo)入Excel通用工具類示例詳解
相關(guān)文章
java正則表達(dá)式之Pattern與Matcher類詳解
這篇文章主要給大家介紹了關(guān)于java正則表達(dá)式之Pattern與Matcher類的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
springboot項(xiàng)目數(shù)據(jù)庫配置類DatabaseConfig示例詳解
這篇文章主要介紹了springboot項(xiàng)目數(shù)據(jù)庫配置類DatabaseConfig實(shí)現(xiàn)代碼,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08
RabbitMq消息防丟失功能實(shí)現(xiàn)方式講解
這篇文章主要介紹了RabbitMq消息防丟失功能實(shí)現(xiàn),RabbitMQ中,消息丟失可以簡單的分為兩種:客戶端丟失和服務(wù)端丟失。針對這兩種消息丟失,RabbitMQ都給出了相應(yīng)的解決方案2023-01-01
java實(shí)現(xiàn)登錄之后抓取數(shù)據(jù)
這篇文章給大家分享了用JAVA實(shí)現(xiàn)在登陸以后抓取網(wǎng)站的數(shù)據(jù)的相關(guān)知識,有興趣的朋友可以測試參考下。2018-07-07
idea中創(chuàng)建多module的maven工程的方法
這篇文章主要介紹了idea中創(chuàng)建多module的maven工程的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-10-10

