This article demonstrates how to create a nested group in a worksheet using Spire.XLS for Java.
import com.spire.xls.*; import java.awt.*; public class CreateNestedGroup { public static void main(String[] args) { //Create a Workbook object Workbook workbook = new Workbook(); //Get the first worksheet Worksheet sheet = workbook.getWorksheets().get(0); //Create a cell style CellStyle style = workbook.getStyles().addStyle("style"); style.getFont().setColor(Color.blue); style.getFont().isBold(true); //Write data to cells sheet.get("A1").setValue("Project plan for project X"); sheet.get("A1").setCellStyleName(style.getName()); sheet.get("A3").setValue("Set up"); sheet.get("A3").setCellStyleName(style.getName()); sheet.get("A4").setValue("Task 1"); sheet.get("A5").setValue("Task 2"); sheet.getCellRange("A4:A5").borderAround(LineStyleType.Thin); sheet.getCellRange("A4:A5").borderInside(LineStyleType.Thin); sheet.get("A7").setValue("Launch"); sheet.get("A7").setCellStyleName(style.getName()); sheet.get("A8").setValue("Task 1"); sheet.get("A9").setValue("Task 2"); sheet.getCellRange("A8:A9").borderAround(LineStyleType.Thin); sheet.getCellRange("A8:A9").borderInside(LineStyleType.Thin); //Pass false to isSummaryRowBelow method , which indicates the summary rows appear above detail rows sheet.getPageSetup().isSummaryRowBelow(false); //Group the rows using groupByRows method sheet.groupByRows(2,9,false); sheet.groupByRows(4,5,false); sheet.groupByRows(8,9,false); //Save to file workbook.saveToFile("NestedGroup.xlsx", ExcelVersion.Version2016); } }