Free Spire.XLS for Java(免费版)
IDEA
可通过E-iceblue中文官网下载,下载后,解压文件,将lib文件夹下的Spire.Xls.jar文件手动导入到Java程序;或者通过maven仓库下载,下载及导入方法可参考官网教程文档的(“支持-帮助文档-Licensing-通过 Maven 仓库安装 Spire 系列 Java 产品”)
import com.spire.xls.*; import java.awt.*; public class MultiLevelGroup_XLS { public static void main(String[] args) { //创建工作簿 Workbook wb = new Workbook(); //获取第一个工作表 Worksheet sheet = wb.getWorksheets().get(0); //将数据写入单元格,并设置单元格样式 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();//设置自适应列 sheet.get('A3').setValue('准备'); sheet.get('A3').getStyle().getFont().setColor(new Color(0,0,255)); sheet.get('A4').setValue('任务 1'); sheet.get('A5').setValue('任务 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('任务 1'); sheet.get('A9').setValue('任务 2'); sheet.getCellRange('A8:A9').borderAround(LineStyleType.Thin); sheet.getCellRange('A8:A9').borderInside(LineStyleType.Thin); //在isSummaryRowBelow方法中传入参数false,意思是将明细数据显示在下方 sheet.getPageSetup().isSummaryRowBelow(false); //使用groupByRows方法对行进行分组,并设置分组展开或折叠 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(); } }
创建结果:
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); //获取单元格设置分组折叠、展开 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(); } }
设置效果: