|
|
@@ -33,7 +33,6 @@ public class CourseTableExportQueryUtil {
|
|
|
*/
|
|
|
public void createThirdTitle(Workbook workbook, Sheet sheet, int rowNumber, String leftTitle, String rightTitle){
|
|
|
Font font = workbook.createFont();
|
|
|
- font.setBold(true);// 设置为粗体
|
|
|
font.setFontName("宋体");
|
|
|
//font.setColor(IndexedColors.RED.getIndex()); // 设置字体颜色为红色
|
|
|
font.setFontHeightInPoints((short) 14);
|
|
|
@@ -42,7 +41,7 @@ public class CourseTableExportQueryUtil {
|
|
|
CellStyle cellStyle = workbook.createCellStyle();
|
|
|
cellStyle.setFont(font); // 将字体应用到样式
|
|
|
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
|
|
|
- cellStyle.setAlignment(HorizontalAlignment.CENTER);
|
|
|
+ cellStyle.setAlignment(HorizontalAlignment.LEFT);
|
|
|
cellStyle.setBorderTop(BorderStyle.THIN);
|
|
|
cellStyle.setBorderBottom(BorderStyle.THIN);
|
|
|
cellStyle.setBorderLeft(BorderStyle.THIN);
|
|
|
@@ -53,16 +52,34 @@ public class CourseTableExportQueryUtil {
|
|
|
Cell cell = row.createCell(0);
|
|
|
cell.setCellValue(leftTitle);
|
|
|
cell.setCellStyle(cellStyle);
|
|
|
+ for (int i = 1; i < 4; i ++){
|
|
|
+ cell = row.createCell(i);
|
|
|
+ cell.setCellStyle(cellStyle);
|
|
|
+ }
|
|
|
sheet.addMergedRegion(new CellRangeAddress(rowNumber, rowNumber, 0, 3));
|
|
|
|
|
|
- cell = row.createCell(1);
|
|
|
+ cellStyle = workbook.createCellStyle();
|
|
|
+ cellStyle.setFont(font); // 将字体应用到样式
|
|
|
+ cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
|
|
|
+ cellStyle.setAlignment(HorizontalAlignment.RIGHT);
|
|
|
+ cellStyle.setBorderTop(BorderStyle.THIN);
|
|
|
+ cellStyle.setBorderBottom(BorderStyle.THIN);
|
|
|
+ cellStyle.setBorderLeft(BorderStyle.THIN);
|
|
|
+ cellStyle.setBorderRight(BorderStyle.THIN);
|
|
|
+
|
|
|
+ cell = row.createCell(4);
|
|
|
cell.setCellValue(rightTitle);
|
|
|
cell.setCellStyle(cellStyle);
|
|
|
+ for (int i = 5; i < 9; i ++){
|
|
|
+ cell = row.createCell(i);
|
|
|
+ cell.setCellStyle(cellStyle);
|
|
|
+ }
|
|
|
sheet.addMergedRegion(new CellRangeAddress(rowNumber, rowNumber, 4, 8));
|
|
|
}
|
|
|
|
|
|
|
|
|
public void createContent(Workbook workbook, Sheet sheet, int rowNumber, CourseTableVo data, String courseType){
|
|
|
+ int firstRow = rowNumber;
|
|
|
Map<Integer, ClassTime> timeNumberMap = data.getClassTimeList().stream().collect(Collectors.toMap(ClassTime::getNumber, x -> x));
|
|
|
Map<String, List<CourseDetailVo>> timeNumberDataMap = data.getCourseList().stream().filter(x -> x.getTimeNumber() != null).collect(Collectors.groupingBy(CourseDetailVo::getTimeNumber));
|
|
|
|
|
|
@@ -115,26 +132,37 @@ public class CourseTableExportQueryUtil {
|
|
|
CourseDetailVo courseDetailVo = list.get(0);
|
|
|
content += courseDetailVo.getCourseName() + "\r\n";
|
|
|
if ("teacher".equals(courseType)) {
|
|
|
- content += courseDetailVo.getClassroomName() + "\r\n";
|
|
|
+ if(courseDetailVo.getClassroomName() != null){
|
|
|
+ content += courseDetailVo.getClassroomName() + "\r\n";
|
|
|
+ }
|
|
|
content += courseDetailVo.getClassName();
|
|
|
} else if ("class".equals(courseType)) {
|
|
|
- content += courseDetailVo.getClassroomName() + "\r\n";
|
|
|
- content += courseDetailVo.getTeacherName();
|
|
|
- } else if("classroom".equals(content)){
|
|
|
+ if(courseDetailVo.getClassroomName() != null){
|
|
|
+ content += courseDetailVo.getClassroomName() + "\r\n";
|
|
|
+ }
|
|
|
|
|
|
+ content += courseDetailVo.getTeacherName();
|
|
|
+ } else if("classroom".equals(courseType)){
|
|
|
+ content += courseDetailVo.getClassName() + "\r\n";
|
|
|
+ content += courseDetailVo.getTeacherName();
|
|
|
}
|
|
|
} else {
|
|
|
CourseDetailVo courseDetailVo = list.get(0);
|
|
|
content += courseDetailVo.getCourseName() + "\r\n";
|
|
|
if ("teacher".equals(courseType)) {
|
|
|
- content += courseDetailVo.getClassroomName() + "\r\n";
|
|
|
+ if(courseDetailVo.getClassroomName() != null){
|
|
|
+ content += courseDetailVo.getClassroomName() + "\r\n";
|
|
|
+ }
|
|
|
content += courseDetailVo.getClassName();
|
|
|
} else if ("class".equals(courseType)) {
|
|
|
- content += courseDetailVo.getClassroomName() + "\r\n";
|
|
|
+ if(courseDetailVo.getClassroomName() != null){
|
|
|
+ content += courseDetailVo.getClassroomName() + "\r\n";
|
|
|
+ }
|
|
|
Set<String> classNames = list.stream().map(CourseDetailVo::getTeacherName).collect(Collectors.toSet());
|
|
|
content += classNames.toString().replace("]", "").replace("[", "").replace(" ", "");
|
|
|
- } else if("classroom".equals(content)){
|
|
|
-
|
|
|
+ } else if("classroom".equals(courseType)){
|
|
|
+ content += courseDetailVo.getClassName() + "\r\n";
|
|
|
+ content += courseDetailVo.getTeacherName();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -173,7 +201,6 @@ public class CourseTableExportQueryUtil {
|
|
|
//合并
|
|
|
Map<Integer, List<Integer>> collect = data.getClassTimeList().stream()
|
|
|
.collect(Collectors.groupingBy(ClassTime::getTimePeriod, Collectors.mapping(ClassTime::getNumber, Collectors.toList())));
|
|
|
- int firstRow = rowNumber;
|
|
|
for (Integer i : collect.keySet()) {
|
|
|
int lastRow = firstRow + collect.get(i).size() - 1;
|
|
|
if (lastRow == firstRow) {
|
|
|
@@ -202,91 +229,50 @@ public class CourseTableExportQueryUtil {
|
|
|
cellStyle.setBorderBottom(BorderStyle.THIN);
|
|
|
cellStyle.setBorderLeft(BorderStyle.THIN);
|
|
|
cellStyle.setBorderRight(BorderStyle.THIN);
|
|
|
+ cellStyle.setWrapText(true);
|
|
|
|
|
|
int rowNumber = 0;
|
|
|
Row row = sheet.createRow(rowNumber);
|
|
|
+ row.setHeightInPoints(48);
|
|
|
+
|
|
|
+ List<String> weekList = new ArrayList<>();
|
|
|
+ weekList.add("周一");
|
|
|
+ weekList.add("周二");
|
|
|
+ weekList.add("周三");
|
|
|
+ weekList.add("周四");
|
|
|
+ weekList.add("周五");
|
|
|
+ weekList.add("周六");
|
|
|
+ weekList.add("周日");
|
|
|
|
|
|
int cellNumber = 0;
|
|
|
Cell row1cell1 = row.createCell(cellNumber);
|
|
|
- row1cell1.setCellValue("节次");
|
|
|
+ row1cell1.setCellValue("班级");
|
|
|
row1cell1.setCellStyle(cellStyle);
|
|
|
- sheet.setColumnWidth(0, 4 * 256);
|
|
|
+ sheet.setColumnWidth(0, 24 * 256);
|
|
|
+ sheet.addMergedRegion(new CellRangeAddress(rowNumber, rowNumber + 1, cellNumber, cellNumber));
|
|
|
cellNumber ++;
|
|
|
|
|
|
- row1cell1 = row.createCell(cellNumber);
|
|
|
- row1cell1.setCellValue("");
|
|
|
- row1cell1.setCellStyle(cellStyle);
|
|
|
- sheet.addMergedRegion(new CellRangeAddress(rowNumber, rowNumber, 0, 1));
|
|
|
- sheet.setColumnWidth(1, 12 * 256);
|
|
|
- cellNumber = cellNumber + 12;
|
|
|
+ int size = classTimeList.size();
|
|
|
|
|
|
- row1cell1 = row.createCell(cellNumber);
|
|
|
- row1cell1.setCellValue("周一");
|
|
|
- row1cell1.setCellStyle(cellStyle);
|
|
|
- sheet.setColumnWidth(2, 16 * 256);
|
|
|
- cellNumber = cellNumber + 12;
|
|
|
+ Row row2 = sheet.createRow(rowNumber + 1);
|
|
|
+ int cellNumber2 = 1;
|
|
|
|
|
|
-
|
|
|
- row1cell1 = row.createCell(cellNumber);
|
|
|
- row1cell1.setCellValue("周二");
|
|
|
- row1cell1.setCellStyle(cellStyle);
|
|
|
- sheet.setColumnWidth(cellNumber, 16 * 256);
|
|
|
- cellNumber = cellNumber + 12;
|
|
|
-
|
|
|
- row1cell1 = row.createCell(cellNumber);
|
|
|
- row1cell1.setCellValue("周三");
|
|
|
- row1cell1.setCellStyle(cellStyle);
|
|
|
- sheet.setColumnWidth(cellNumber, 16 * 256);
|
|
|
- cellNumber = cellNumber + 12;
|
|
|
-
|
|
|
- row1cell1 = row.createCell(cellNumber);
|
|
|
- row1cell1.setCellValue("周四");
|
|
|
- row1cell1.setCellStyle(cellStyle);
|
|
|
- sheet.setColumnWidth(cellNumber, 16 * 256);
|
|
|
- cellNumber = cellNumber + 12;
|
|
|
-
|
|
|
- row1cell1 = row.createCell(cellNumber);
|
|
|
- row1cell1.setCellValue("周五");
|
|
|
- row1cell1.setCellStyle(cellStyle);
|
|
|
- sheet.setColumnWidth(cellNumber, 16 * 256);
|
|
|
- cellNumber = cellNumber + 12;
|
|
|
-
|
|
|
- row1cell1 = row.createCell(cellNumber);
|
|
|
- row1cell1.setCellValue("周六");
|
|
|
- row1cell1.setCellStyle(cellStyle);
|
|
|
- sheet.setColumnWidth(cellNumber, 16 * 256);
|
|
|
- cellNumber = cellNumber + 12;
|
|
|
-
|
|
|
- row1cell1 = row.createCell(cellNumber);
|
|
|
- row1cell1.setCellValue("周日");
|
|
|
- row1cell1.setCellStyle(cellStyle);
|
|
|
- sheet.setColumnWidth(cellNumber, 16 * 256);
|
|
|
-
|
|
|
- sheet.addMergedRegion(new CellRangeAddress(rowNumber, rowNumber, 1, 12));
|
|
|
- sheet.addMergedRegion(new CellRangeAddress(rowNumber, rowNumber, 13, 24));
|
|
|
- sheet.addMergedRegion(new CellRangeAddress(rowNumber, rowNumber, 25, 36));
|
|
|
- sheet.addMergedRegion(new CellRangeAddress(rowNumber, rowNumber, 37, 48));
|
|
|
- sheet.addMergedRegion(new CellRangeAddress(rowNumber, rowNumber, 49, 60));
|
|
|
- sheet.addMergedRegion(new CellRangeAddress(rowNumber, rowNumber, 61, 72));
|
|
|
- sheet.addMergedRegion(new CellRangeAddress(rowNumber, rowNumber, 73, 84));
|
|
|
-
|
|
|
- rowNumber ++;
|
|
|
- row = sheet.createRow(rowNumber);
|
|
|
-
|
|
|
- cellNumber = 0;
|
|
|
- row1cell1 = row.createCell(cellNumber);
|
|
|
- row1cell1.setCellValue("班级");
|
|
|
- row1cell1.setCellStyle(cellStyle);
|
|
|
- sheet.setColumnWidth(2, 16 * 256);
|
|
|
- cellNumber ++;
|
|
|
-
|
|
|
- for (ClassTime classTime : classTimeList) {
|
|
|
+ for (String week : weekList) {
|
|
|
row1cell1 = row.createCell(cellNumber);
|
|
|
- row1cell1.setCellValue(classTime.getShortName() + "\r\n" + classTime.getSummerStartTime() + "-" + classTime.getSummerEndTime());
|
|
|
+ row1cell1.setCellValue(week);
|
|
|
row1cell1.setCellStyle(cellStyle);
|
|
|
- sheet.setColumnWidth(2, 16 * 256);
|
|
|
- cellNumber ++;
|
|
|
+ int firstCol = cellNumber;
|
|
|
+ int lastCol = firstCol + size - 1;
|
|
|
+ sheet.addMergedRegion(new CellRangeAddress(rowNumber, rowNumber, firstCol, lastCol));
|
|
|
+ cellNumber = cellNumber + size;
|
|
|
+
|
|
|
+ for (ClassTime classTime : classTimeList) {
|
|
|
+ row1cell1 = row2.createCell(cellNumber2);
|
|
|
+ row1cell1.setCellValue(classTime.getShortName() + "\r\n" + classTime.getSummerStartTime() + "-" + classTime.getSummerEndTime());
|
|
|
+ row1cell1.setCellStyle(cellStyle);
|
|
|
+ sheet.setColumnWidth(cellNumber2, 24 * 256);
|
|
|
+ cellNumber2 ++;
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
}
|