diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/poi/excel/EasyPoiExcelExportStylerImpl.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/poi/excel/EasyPoiExcelExportStylerImpl.java
index b1a5606c2e..5ddff4ba71 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/poi/excel/EasyPoiExcelExportStylerImpl.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/poi/excel/EasyPoiExcelExportStylerImpl.java
@@ -50,7 +50,7 @@ public class EasyPoiExcelExportStylerImpl extends AbstractExcelExportStyler
titleStyle.setFont(font);
titleStyle.setAlignment(HorizontalAlignment.CENTER);
titleStyle.setVerticalAlignment(VerticalAlignment.CENTER);
- return null;
+ return titleStyle;
}
/**
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/poi/excel/handler/ColumnWidthStyleStrategy.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/poi/excel/handler/ColumnWidthStyleStrategy.java
new file mode 100644
index 0000000000..7e577e7c22
--- /dev/null
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/poi/excel/handler/ColumnWidthStyleStrategy.java
@@ -0,0 +1,96 @@
+package com.epmet.commons.tools.utils.poi.excel.handler;
+
+/**
+ * desc:设置columnWith宽度
+ *
+ * @author: LiuJanJun
+ * @date: 2022/4/28 5:05 下午
+ * @version: 1.0
+ */
+
+import com.alibaba.excel.enums.CellDataTypeEnum;
+import com.alibaba.excel.metadata.Head;
+import com.alibaba.excel.metadata.data.WriteCellData;
+import com.alibaba.excel.util.MapUtils;
+import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
+import com.alibaba.excel.write.style.column.AbstractColumnWidthStyleStrategy;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.poi.ss.usermodel.Cell;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * Take the width of the longest column as the width.
+ *
+ * This is not very useful at the moment, for example if you have Numbers it will cause a newline.And the length is not
+ * exactly the same as the actual length.
+ *
+ * @author Jiaju Zhuang
+ */
+public class ColumnWidthStyleStrategy extends AbstractColumnWidthStyleStrategy {
+
+ private static final int MAX_COLUMN_WIDTH = 255;
+ /**
+ * 是否 根据内容设置宽度
+ */
+ private boolean isSetContentWidth = false;
+
+ private final Map> cache = MapUtils.newHashMapWithExpectedSize(8);
+
+
+
+ @Override
+ protected void setColumnWidth(WriteSheetHolder writeSheetHolder, List> cellDataList, Cell cell,
+ Head head,
+ Integer relativeRowIndex, Boolean isHead) {
+ boolean needSetWidth = (isHead || isSetContentWidth) && CollectionUtils.isNotEmpty(cellDataList);
+ if (!needSetWidth) {
+ return;
+ }
+ Map maxColumnWidthMap = cache.computeIfAbsent(writeSheetHolder.getSheetNo(), k -> new HashMap<>(16));
+ Integer columnWidth = dataLength(cellDataList, cell, isHead);
+ if (columnWidth < 0) {
+ return;
+ }
+ if (columnWidth > MAX_COLUMN_WIDTH) {
+ columnWidth = MAX_COLUMN_WIDTH;
+ }
+ Integer maxColumnWidth = maxColumnWidthMap.get(cell.getColumnIndex());
+ if (maxColumnWidth == null || columnWidth > maxColumnWidth) {
+ maxColumnWidthMap.put(cell.getColumnIndex(), columnWidth);
+ writeSheetHolder.getSheet().setColumnWidth(cell.getColumnIndex(), columnWidth * 256);
+ }
+ }
+
+ private Integer dataLength(List> cellDataList, Cell cell, Boolean isHead) {
+ if (isHead) {
+ return cell.getStringCellValue().getBytes().length+3;
+ }
+ WriteCellData> cellData = cellDataList.get(0);
+ CellDataTypeEnum type = cellData.getType();
+ if (type == null) {
+ return -1;
+ }
+ switch (type) {
+ case STRING:
+ return cellData.getStringValue().getBytes().length;
+ case BOOLEAN:
+ return cellData.getBooleanValue().toString().getBytes().length;
+ case NUMBER:
+ return cellData.getNumberValue().toString().getBytes().length;
+ default:
+ return -1;
+ }
+ }
+
+ public ColumnWidthStyleStrategy() {
+
+ }
+
+ public ColumnWidthStyleStrategy(boolean isSetContentWidth) {
+ this.isSetContentWidth = isSetContentWidth;
+ }
+}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java
index 70c2dbb55a..c684def65b 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java
@@ -278,7 +278,6 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
List listOptions = new ArrayList<>();
String[] split = vauleStr.split(StrConstant.COMMA);
Arrays.stream(split).forEach((value) -> {
- //todo 看看怎么更好的利用本地缓存
OptionResultDTO optionResultDTO = remoteOptionMap.get(value);
if (optionResultDTO != null) {
listOptions.add(optionResultDTO.getLabel());