From 045b55722b25ccc77d88671c5d6df309edb8a66d Mon Sep 17 00:00:00 2001
From: 钟日健 <5689795+arsn@user.noreply.gitee.com>
Date: Tue, 22 Feb 2022 16:00:34 +0800
Subject: [PATCH] 1. 保安员新增异步推送数据至群访用户表 2. 会员标记接口新增,会员标记成功,则创建会员记录和会员题库记录(包含120道题目) 3. web 端考试开始,查询题目判断用户是否为会员,如果为会员则从会员题库获取当前人员的考试题目(从120道题中随机抽取60道)

---
 src/main/java/org/springblade/common/excel/RowWriteHandler.java |   53 ++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 34 insertions(+), 19 deletions(-)

diff --git a/src/main/java/org/springblade/common/excel/RowWriteHandler.java b/src/main/java/org/springblade/common/excel/RowWriteHandler.java
index ae04aa7..38a7282 100644
--- a/src/main/java/org/springblade/common/excel/RowWriteHandler.java
+++ b/src/main/java/org/springblade/common/excel/RowWriteHandler.java
@@ -6,6 +6,7 @@
 import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
 import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
 import org.apache.poi.ss.usermodel.*;
+import org.springblade.core.tool.utils.Func;
 
 import java.util.List;
 
@@ -14,31 +15,45 @@
  * @author zhongrj
  * @since 2021-9-26
  */
-public class RowWriteHandler implements CellWriteHandler {
+public class RowWriteHandler  implements CellWriteHandler {
 
+	public static CellStyle cellStyle;
 
-		@Override
-		public void beforeCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, Head head, Integer integer, Integer integer1, Boolean aBoolean) {
+	/**
+	 * 设置全局变量,防止  cellStyle 创建过多报错 2021-12-16 zrj
+	 * The maximum number of cell styles was exceeded. You can define up to 64000styles in a .xlsx workbook
+	 * @param cellStyle
+	 */
+	public static void setCellStyle(CellStyle cellStyle) {
+		RowWriteHandler.cellStyle = cellStyle;
+	}
 
+	@Override
+	public void beforeCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, Head head, Integer integer, Integer integer1, Boolean aBoolean) {
+
+	}
+
+	@Override
+	public void afterCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Cell cell, Head head, Integer integer, Boolean aBoolean) {
+		//设置单元格格式为文本
+		Workbook workbook = writeSheetHolder.getSheet().getWorkbook();
+		//自定义样式不为空时,重复利用
+		if(Func.isEmpty(cellStyle)){
+			cellStyle = workbook.createCellStyle();
+			setCellStyle(cellStyle);
 		}
+		DataFormat dataFormat = workbook.createDataFormat();
+		cellStyle.setDataFormat(dataFormat.getFormat("@"));
+		cell.setCellStyle(cellStyle);
+	}
 
-		@Override
-		public void afterCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Cell cell, Head head, Integer integer, Boolean aBoolean) {
-			//设置单元格格式为文本
-			Workbook workbook = writeSheetHolder.getSheet().getWorkbook();
-			CellStyle cellStyle = workbook.createCellStyle();
-			DataFormat dataFormat = workbook.createDataFormat();
-			cellStyle.setDataFormat(dataFormat.getFormat("@"));
-			cell.setCellStyle(cellStyle);
-		}
+	//@Override 加上会报错
+	public void afterCellDataConverted(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, CellData cellData, Cell cell, Head head, Integer integer, Boolean aBoolean) {
 
-		//@Override 加上会报错
-		public void afterCellDataConverted(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, CellData cellData, Cell cell, Head head, Integer integer, Boolean aBoolean) {
+	}
 
-		}
+	@Override
+	public void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, List<CellData> list, Cell cell, Head head, Integer integer, Boolean aBoolean) {
 
-		@Override
-		public void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, List<CellData> list, Cell cell, Head head, Integer integer, Boolean aBoolean) {
-
-		}
+	}
 }

--
Gitblit v1.9.3