Java在Excel中創(chuàng)建多級分組、折疊或展開分組的實現(xiàn)
本文介紹通過Java程序在Excel創(chuàng)建分組的方法,可對行或列分組進(jìn)行分組并設(shè)置明細(xì)數(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(免費(fèi)版)
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("準(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,通過方法二來實現(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)文章
java正則表達(dá)式之Pattern與Matcher類詳解
這篇文章主要給大家介紹了關(guān)于java正則表達(dá)式之Pattern與Matcher類的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09springboot項目數(shù)據(jù)庫配置類DatabaseConfig示例詳解
這篇文章主要介紹了springboot項目數(shù)據(jù)庫配置類DatabaseConfig實現(xiàn)代碼,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08idea中創(chuàng)建多module的maven工程的方法
這篇文章主要介紹了idea中創(chuàng)建多module的maven工程的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10