From d51b555fa26311e746fcd056e603b7a5aae55f7b Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Sat, 28 Mar 2026 09:27:30 +0800 Subject: [PATCH] =?UTF-8?q?fix(excel):=20=E4=BF=AE=E5=A4=8D=E6=8E=92?= =?UTF-8?q?=E4=BA=A7=E8=A1=A8=E5=AF=BC=E5=87=BA=E5=8A=9F=E8=83=BD=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E6=97=A5=E6=9C=9F=E6=A0=BC=E5=BC=8F=E5=92=8C=E8=A1=A8?= =?UTF-8?q?=E6=A0=BC=E5=90=88=E5=B9=B6=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加SimpleDateFormat用于日期格式化处理 - 将计划日期格式化为yyyy-MM-dd格式避免显示异常 - 修正表格合并区域从38列扩展到40列 - 为整个合并区域的所有单元格应用标题样式 - 确保合并单元格后样式的一致性显示 --- .../service/impl/ApsPlanSheetServiceImpl.java | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/klp-aps/src/main/java/com/klp/aps/service/impl/ApsPlanSheetServiceImpl.java b/klp-aps/src/main/java/com/klp/aps/service/impl/ApsPlanSheetServiceImpl.java index 9911ee01..d3cd2cc8 100644 --- a/klp-aps/src/main/java/com/klp/aps/service/impl/ApsPlanSheetServiceImpl.java +++ b/klp-aps/src/main/java/com/klp/aps/service/impl/ApsPlanSheetServiceImpl.java @@ -30,6 +30,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; +import java.text.SimpleDateFormat; import java.util.List; import java.util.Map; import java.util.Collection; @@ -142,12 +143,17 @@ public class ApsPlanSheetServiceImpl implements IApsPlanSheetService { Long planSheetId = req.getPlanSheetId(); if (planSheetId != null) { ApsPlanSheetVo planSheet = queryById(planSheetId); - t0.setCellValue(planSheet.getPlanDate().toString() + "————" + planSheet.getLineName() + "————" + planSheet.getPlanCode()); + // 格式化日期 + String dateStr = ""; + if (planSheet.getPlanDate() != null) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + dateStr = sdf.format(planSheet.getPlanDate()); + } + t0.setCellValue(dateStr + "————" + planSheet.getLineName() + "————" + planSheet.getPlanCode()); } else { t0.setCellValue("快速排产表"); } - sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 38)); - + // 1. 先创建标题样式 CellStyle titleStyle = wb.createCellStyle(); titleStyle.setAlignment(HorizontalAlignment.CENTER); titleStyle.setVerticalAlignment(VerticalAlignment.CENTER); @@ -155,7 +161,19 @@ public class ApsPlanSheetServiceImpl implements IApsPlanSheetService { titleFont.setBold(true); titleFont.setFontHeightInPoints((short) 15); titleStyle.setFont(titleFont); - t0.setCellStyle(titleStyle); + + // 2. 合并区域 + CellRangeAddress titleRegion = new CellRangeAddress(0, 0, 0, 40); + sheet.addMergedRegion(titleRegion); + + // 3. 给【整个合并区域】设置样式 + for (int i = titleRegion.getFirstColumn(); i <= titleRegion.getLastColumn(); i++) { + Cell cell = title.getCell(i); + if (cell == null) { + cell = title.createCell(i); + } + cell.setCellStyle(titleStyle); + } String[] headers = new String[]{ "产线", "排产日期", "排产单号", "排产类型", "排产人", "修改人", "计划备注",