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; }