This commit is contained in:
Looly 2020-08-04 11:04:26 +08:00
parent b22dbac8f7
commit 34f49fc916
5 changed files with 51 additions and 15 deletions

View File

@ -3,7 +3,7 @@
------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------
# 5.4.0 (2020-08-01) # 5.4.0 (2020-08-04)
### 新特性 ### 新特性
* 【socket】 对NioServer和NioClient改造pr#992@Github * 【socket】 对NioServer和NioClient改造pr#992@Github
@ -11,6 +11,7 @@
* 【core 】 DateUtil增加beginOfWeek重载 * 【core 】 DateUtil增加beginOfWeek重载
* 【core 】 将有歧义的BeanUtil.mapToBean方法置为过期使用toBean方法 * 【core 】 将有歧义的BeanUtil.mapToBean方法置为过期使用toBean方法
* 【core 】 添加WatchAction对Watcher的抽象 * 【core 】 添加WatchAction对Watcher的抽象
* 【core 】 修改UUID正则更加严谨issue#I1Q1IW@Gitee
### Bug修复# ### Bug修复#
* 【core 】 修复原始类型转换时,转换失败没有抛出异常的问题 * 【core 】 修复原始类型转换时,转换失败没有抛出异常的问题

View File

@ -83,11 +83,11 @@ public class PatternPool {
/** /**
* UUID * UUID
*/ */
public final static Pattern UUID = Pattern.compile("^[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}$"); public final static Pattern UUID = Pattern.compile("^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", Pattern.CASE_INSENSITIVE);
/** /**
* 不带横线的UUID * 不带横线的UUID
*/ */
public final static Pattern UUID_SIMPLE = Pattern.compile("^[0-9a-z]{32}$"); public final static Pattern UUID_SIMPLE = Pattern.compile("^[0-9a-f]{32}$", Pattern.CASE_INSENSITIVE);
/** /**
* MAC地址正则 * MAC地址正则
*/ */

View File

@ -1,6 +1,7 @@
package cn.hutool.core.lang; package cn.hutool.core.lang;
import cn.hutool.core.exceptions.ValidateException; import cn.hutool.core.exceptions.ValidateException;
import cn.hutool.core.util.IdUtil;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
@ -142,4 +143,13 @@ public class ValidatorTest {
Assert.assertTrue(Validator.isChinese("全都是中文")); Assert.assertTrue(Validator.isChinese("全都是中文"));
Assert.assertFalse(Validator.isChinese("not全都是中文")); Assert.assertFalse(Validator.isChinese("not全都是中文"));
} }
@Test
public void isUUIDTest(){
Assert.assertTrue(Validator.isUUID(IdUtil.randomUUID()));
Assert.assertTrue(Validator.isUUID(IdUtil.fastSimpleUUID()));
Assert.assertTrue(Validator.isUUID(IdUtil.randomUUID().toUpperCase()));
Assert.assertTrue(Validator.isUUID(IdUtil.fastSimpleUUID().toUpperCase()));
}
} }

View File

@ -1,10 +1,10 @@
package cn.hutool.poi.excel; package cn.hutool.poi.excel;
import java.io.Closeable; import cn.hutool.core.io.IoUtil;
import java.util.ArrayList; import cn.hutool.core.lang.Assert;
import java.util.List;
import cn.hutool.poi.excel.cell.CellLocation; import cn.hutool.poi.excel.cell.CellLocation;
import cn.hutool.poi.excel.cell.CellUtil;
import cn.hutool.poi.excel.style.StyleUtil;
import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Row;
@ -12,10 +12,9 @@ import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFSheet;
import cn.hutool.core.io.IoUtil; import java.io.Closeable;
import cn.hutool.core.lang.Assert; import java.util.ArrayList;
import cn.hutool.poi.excel.cell.CellUtil; import java.util.List;
import cn.hutool.poi.excel.style.StyleUtil;
/** /**
* Excel基础类用于抽象ExcelWriter和ExcelReader中共用部分的对象和方法 * Excel基础类用于抽象ExcelWriter和ExcelReader中共用部分的对象和方法
@ -281,11 +280,22 @@ public class ExcelBase<T extends ExcelBase<T>> implements Closeable {
*/ */
public CellStyle createCellStyle(int x, int y) { public CellStyle createCellStyle(int x, int y) {
final Cell cell = getOrCreateCell(x, y); final Cell cell = getOrCreateCell(x, y);
final CellStyle cellStyle = this.workbook.createCellStyle(); final CellStyle cellStyle = this.workbook.createCellStyle();
cell.setCellStyle(cellStyle); cell.setCellStyle(cellStyle);
return cellStyle; return cellStyle;
} }
/**
* 创建单元格样式
*
* @return {@link CellStyle}
* @see Workbook#createCellStyle()
* @since 5.4.0
*/
public CellStyle createCellStyle(){
return StyleUtil.createCellStyle(this.workbook);
}
/** /**
* 获取或创建某一行的样式返回样式后可以设置样式内容<br> * 获取或创建某一行的样式返回样式后可以设置样式内容<br>
* 需要注意此方法返回行样式设置背景色在单元格设置值后会被覆盖需要单独设置其单元格的样式 * 需要注意此方法返回行样式设置背景色在单元格设置值后会被覆盖需要单独设置其单元格的样式

View File

@ -39,7 +39,7 @@ public class StyleUtil {
* @return {@link CellStyle} * @return {@link CellStyle}
*/ */
public static CellStyle cloneCellStyle(Workbook workbook, CellStyle cellStyle) { public static CellStyle cloneCellStyle(Workbook workbook, CellStyle cellStyle) {
final CellStyle newCellStyle = workbook.createCellStyle(); final CellStyle newCellStyle = createCellStyle(workbook);
newCellStyle.cloneStyleFrom(cellStyle); newCellStyle.cloneStyleFrom(cellStyle);
return newCellStyle; return newCellStyle;
} }
@ -144,6 +144,21 @@ public class StyleUtil {
return font; return font;
} }
/**
* 创建单元格样式
*
* @param workbook {@link Workbook} 工作簿
* @return {@link CellStyle}
* @see Workbook#createCellStyle()
* @since 5.4.0
*/
public static CellStyle createCellStyle(Workbook workbook) {
if(null == workbook){
return null;
}
return workbook.createCellStyle();
}
/** /**
* 创建默认普通单元格样式 * 创建默认普通单元格样式
* *
@ -156,7 +171,7 @@ public class StyleUtil {
* @return {@link CellStyle} * @return {@link CellStyle}
*/ */
public static CellStyle createDefaultCellStyle(Workbook workbook) { public static CellStyle createDefaultCellStyle(Workbook workbook) {
final CellStyle cellStyle = workbook.createCellStyle(); final CellStyle cellStyle = createCellStyle(workbook);
setAlign(cellStyle, HorizontalAlignment.CENTER, VerticalAlignment.CENTER); setAlign(cellStyle, HorizontalAlignment.CENTER, VerticalAlignment.CENTER);
setBorder(cellStyle, BorderStyle.THIN, IndexedColors.BLACK); setBorder(cellStyle, BorderStyle.THIN, IndexedColors.BLACK);
return cellStyle; return cellStyle;
@ -169,7 +184,7 @@ public class StyleUtil {
* @return {@link CellStyle} * @return {@link CellStyle}
*/ */
public static CellStyle createHeadCellStyle(Workbook workbook) { public static CellStyle createHeadCellStyle(Workbook workbook) {
final CellStyle cellStyle = workbook.createCellStyle(); final CellStyle cellStyle = createCellStyle(workbook);
setAlign(cellStyle, HorizontalAlignment.CENTER, VerticalAlignment.CENTER); setAlign(cellStyle, HorizontalAlignment.CENTER, VerticalAlignment.CENTER);
setBorder(cellStyle, BorderStyle.THIN, IndexedColors.BLACK); setBorder(cellStyle, BorderStyle.THIN, IndexedColors.BLACK);
setColor(cellStyle, IndexedColors.GREY_25_PERCENT, FillPatternType.SOLID_FOREGROUND); setColor(cellStyle, IndexedColors.GREY_25_PERCENT, FillPatternType.SOLID_FOREGROUND);