Java在Excel中創(chuàng)建多級分組、折疊或展開分組的實現(xiàn)
本文介紹通過Java程序在Excel創(chuàng)建分組的方法,可對行或列分組進行分組并設(shè)置明細數(shù)據(jù)是否展開或折疊。設(shè)置數(shù)據(jù)分組并展開或折疊時,可通過以下方法:
方法一:
通過方法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代碼示例展示具體實現(xiàn)方法。
使用工具:Free Spire.XLS for Java(免費版)
Jar包獲取及導(dǎo)入:可通過官網(wǎng)下載jar包,并解壓,將lib文件夾下的Spire.Xls.jar導(dǎo)入Java程序;或者通過Maven倉庫下載導(dǎo)入。
Java代碼示例
示例1,通過方法一來實現(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();
//獲取第一個工作表
Worksheet sheet = wb.getWorksheets().get(0);
//將數(shù)據(jù)寫入單元格,并設(shè)置單元格樣式
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();//設(shè)置自適應(yīng)列
sheet.get("A3").setValue("準備");
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,意思是將明細數(shù)據(jù)顯示在下方
sheet.getPageSetup().isSummaryRowBelow(false);
//使用groupByRows方法對行進行分組,并設(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,通過方法二來實現(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)建多級分組、折疊或展開分組的實現(xiàn)的文章就介紹到這了,更多相關(guān)Java在Excel創(chuàng)建多級分組和展開分組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java讀取Excel文件內(nèi)容的簡單實例
- Java數(shù)據(jù)導(dǎo)出功能之導(dǎo)出Excel文件實例
- Java數(shù)據(jù)導(dǎo)入功能之讀取Excel文件實例
- JAVA使用POI獲取Excel的列數(shù)與行數(shù)
- Java解析Excel文件并把數(shù)據(jù)存入數(shù)據(jù)庫
- java使用poi讀取excel內(nèi)容方法實例
- java讀取excel文件的兩種方法
- java讀取excel文件并復(fù)制(copy)文件到指定目錄示例
- java常用工具類之Excel操作類及依賴包下載
- 在java poi導(dǎo)入Excel通用工具類示例詳解
相關(guān)文章
springboot項目數(shù)據(jù)庫配置類DatabaseConfig示例詳解
這篇文章主要介紹了springboot項目數(shù)據(jù)庫配置類DatabaseConfig實現(xiàn)代碼,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08
idea中創(chuàng)建多module的maven工程的方法
這篇文章主要介紹了idea中創(chuàng)建多module的maven工程的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10

