Java在Excel中創(chuàng)建多級(jí)分組、折疊或展開分組的實(shí)現(xiàn)
本文介紹通過(guò)Java程序在Excel創(chuàng)建分組的方法,可對(duì)行或列分組進(jìn)行分組并設(shè)置明細(xì)數(shù)據(jù)是否展開或折疊。設(shè)置數(shù)據(jù)分組并展開或折疊時(shí),可通過(guò)以下方法:
方法一:
通過(guò)方法sheet.groupByRows(int firstRow, int lastRow, boolean isCollapsed)設(shè)置行分組;通過(guò)方法sheet.groupByColumns(int firstColumnm, int lastColumn, boolean isCollapsed)設(shè)置列分組。
方法二:
通過(guò)方法sheet.getCellRange(String name).groupByRows(boolean isCollapsed)設(shè)置行分組;通過(guò)方法sheet.getCellRange(String name).groupByColumns(boolean isCollapsed)設(shè)置列分組。下面將通過(guò)Java代碼示例展示具體實(shí)現(xiàn)方法。
使用工具:Free Spire.XLS for Java(免費(fèi)版)
Jar包獲取及導(dǎo)入:可通過(guò)官網(wǎng)下載jar包,并解壓,將lib文件夾下的Spire.Xls.jar導(dǎo)入Java程序;或者通過(guò)Maven倉(cāng)庫(kù)下載導(dǎo)入。
Java代碼示例
示例1,通過(guò)方法一來(lái)實(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('啟動(dòng)'); 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方法對(duì)行進(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,通過(guò)方法二來(lái)實(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è)置效果前后對(duì)比:
到此這篇關(guān)于Java在Excel中創(chuàng)建多級(jí)分組、折疊或展開分組的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Java在Excel創(chuàng)建多級(jí)分組和展開分組內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章: