// ================================================================================================================================= private int exportFrontEquipListReport_header( List<FrontEquipListReport_subtype> subtypes, int rownum, XSSFWorkbook wb, Sheet sheet) { CellStyle style = getHeaderStyle(wb, (short) 11); CellStyle style2 = getHeaderStyle(wb, (short) 10); // 第一行列标题 Row row_subtype = sheet.createRow(rownum++); Cell cell_subtype_0 = row_subtype.createCell(0); cell_subtype_0.setCellValue(""); cell_subtype_0.setCellStyle(style); sheet.setColumnWidth(0, 700); Cell cell_subtype_1 = row_subtype.createCell(1); cell_subtype_1.setCellValue(""); cell_subtype_1.setCellStyle(style); sheet.setColumnWidth(1, 1800); Cell cell_subtype_2 = row_subtype.createCell(2); cell_subtype_2.setCellValue(""); cell_subtype_2.setCellStyle(style); sheet.setColumnWidth(2, 4800); // 第二行列标题 Row row_prod = sheet.createRow(rownum++); Cell cell_prod_0 = row_prod.createCell(0); cell_prod_0.setCellValue("序号"); cell_prod_0.setCellStyle(style2); Cell cell_prod_1 = row_prod.createCell(1); cell_prod_1.setCellValue("点位编号"); cell_prod_1.setCellStyle(style2); Cell cell_prod_2 = row_prod.createCell(2); cell_prod_2.setCellValue("点位名称"); cell_prod_2.setCellStyle(style2); int cell_num = 3; for (FrontEquipListReport_subtype subtype : subtypes) { int start_cell_num = cell_num; Cell cell_subtype = row_subtype.createCell(cell_num); cell_subtype.setCellValue(subtype.getSubtype_name()); cell_subtype.setCellStyle(style); for (FrontEquipListReport_prod prod : subtype.getProds()) { if (start_cell_num != cell_num) { cell_subtype = row_subtype.createCell(cell_num); cell_subtype.setCellStyle(style); } Cell cell_prod = row_prod.createCell(cell_num); cell_prod.setCellValue(prod.getProd_name() + "(" + prod.getProd_style() + ")"); cell_prod.setCellStyle(style2); cell_num++; } // 对子类型进行横向的单元格合并 sheet.addMergedRegion( new CellRangeAddress(1, (short) 1, start_cell_num, (short) cell_num - 1)); } return rownum; }