Free Spire.XLS for Java (免费版)
IntelliJ IDEA
通过e-iceblue官网下载包,并解压将lib文件夹下的jar文件导入java程序。如下导入效果:
import com.spire.xls.*; import java.awt.*; public class MultiLevelGroup { public static void main(String[] args) { Workbook wb = new Workbook(); //获取第一个工作表 Worksheet sheet = wb.getWorksheets().get(0); //创建一个单元格样式 CellStyle style = wb.getStyles().addStyle('style'); style.getFont().setColor(Color.blue); style.getFont().isBold(true); //将数据写入单元格,并在某些单元格应用样式 sheet.get('A1').setValue('A项目--项目计划'); sheet.get('A1').setCellStyleName(style.getName()); sheet.get('A3').setValue('准备'); sheet.get('A3').setCellStyleName(style.getName()); 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').setCellStyleName(style.getName()); 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); sheet.groupByRows(4,5,false); sheet.groupByRows(8,9,false); //保存文档 wb.saveToFile('NestedGroup.xlsx', ExcelVersion.Version2013); wb.dispose(); } }
设置效果: