From c31417674c9708ef27e34b08f7a94ead32767c50 Mon Sep 17 00:00:00 2001 From: jueyue Date: Mon, 20 Apr 2020 10:51:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A8=AA=E5=90=91=E5=BE=AA=E7=8E=AF=E7=9A=84?= =?UTF-8?q?=E6=97=B6=E5=80=99=E5=AE=BD=E5=BA=A6=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../easypoi/excel/annotation/CellStyler.java | 4 ++++ .../excel/entity/params/ExcelForEachParams.java | 4 ++++ .../export/template/ExcelExportOfTemplateUtil.java | 12 +++++++++--- 3 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 easypoi-annotation/src/main/java/cn/afterturn/easypoi/excel/annotation/CellStyler.java diff --git a/easypoi-annotation/src/main/java/cn/afterturn/easypoi/excel/annotation/CellStyler.java b/easypoi-annotation/src/main/java/cn/afterturn/easypoi/excel/annotation/CellStyler.java new file mode 100644 index 0000000..b6bbef9 --- /dev/null +++ b/easypoi-annotation/src/main/java/cn/afterturn/easypoi/excel/annotation/CellStyler.java @@ -0,0 +1,4 @@ +package cn.afterturn.easypoi.excel.annotation; + +public @interface CellStyler { +} diff --git a/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/entity/params/ExcelForEachParams.java b/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/entity/params/ExcelForEachParams.java index 0e4c709..c39dc82 100644 --- a/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/entity/params/ExcelForEachParams.java +++ b/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/entity/params/ExcelForEachParams.java @@ -36,6 +36,10 @@ public class ExcelForEachParams implements Serializable { * 行高 */ private short height; + /** + * 列宽(仅横向遍历支持) + */ + private int width; /** * 常量值 */ diff --git a/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/export/template/ExcelExportOfTemplateUtil.java b/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/export/template/ExcelExportOfTemplateUtil.java index 218bc95..bacc17b 100644 --- a/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/export/template/ExcelExportOfTemplateUtil.java +++ b/easypoi-base/src/main/java/cn/afterturn/easypoi/excel/export/template/ExcelExportOfTemplateUtil.java @@ -747,13 +747,18 @@ public final class ExcelExportOfTemplateUtil extends BaseExportService { //如果合并单元格,就把这个单元格的样式和之前的保持一致 setMergedRegionStyle(row, ci, params); //合并对应单元格 - if ((params.getRowspan() != 1 || params.getColspan() != 1) - && !mergedRegionHelper.isMergedRegion(row.getRowNum() + 1, ci) - && PoiCellUtil.isMergedRegion(row.getSheet(), row.getRowNum(), ci)) { + boolean isNeedMerge = (params.getRowspan() != 1 || params.getColspan() != 1) + && !mergedRegionHelper.isMergedRegion(row.getRowNum() + 1, ci); + // 这里感觉判断没有意义,有点浪费性能,还不如后面报错 + // && !PoiCellUtil.isMergedRegion(row.getSheet(), row.getRowNum(), ci); + if (isNeedMerge) { PoiMergeCellUtil.addMergedRegion(row.getSheet(), row.getRowNum(), row.getRowNum() + params.getRowspan() - 1, ci, ci + params.getColspan() - 1); } + if (params.getRowspan() == 1 && params.getColspan() == 1){ + row.getCell(ci).getSheet().setColumnWidth(row.getCell(ci).getColumnIndex(), params.getWidth()); + } ci = ci + params.getColspan(); } loopCi = Math.max(loopCi, ci); @@ -1046,6 +1051,7 @@ public final class ExcelExportOfTemplateUtil extends BaseExportService { params.setColspan(colAndrow[1]); } params.setNeedSum(templateSumHandler.isSumKey(params.getName())); + params.setWidth(cell.getSheet().getColumnWidth(cell.getColumnIndex())); return params; }