mirror of https://gitee.com/y_project/RuoYi.git
Excel支持readConverterExp读取字符串组内容
parent
5321200c6e
commit
326fe6a63f
|
@ -29,6 +29,11 @@ public @interface Excel
|
|||
*/
|
||||
public String readConverterExp() default "";
|
||||
|
||||
/**
|
||||
* 分隔符,读取字符串组内容
|
||||
*/
|
||||
public String separator() default ",";
|
||||
|
||||
/**
|
||||
* 导出类型(0数字 1字符串)
|
||||
*/
|
||||
|
|
|
@ -276,7 +276,7 @@ public class ExcelUtil<T>
|
|||
}
|
||||
else if (StringUtils.isNotEmpty(attr.readConverterExp()))
|
||||
{
|
||||
val = reverseByExp(String.valueOf(val), attr.readConverterExp());
|
||||
val = reverseByExp(String.valueOf(val), attr.readConverterExp(), attr.separator());
|
||||
}
|
||||
ReflectUtils.invokeSetter(entity, propertyName, val);
|
||||
}
|
||||
|
@ -535,13 +535,14 @@ public class ExcelUtil<T>
|
|||
Object value = getTargetValue(vo, field, attr);
|
||||
String dateFormat = attr.dateFormat();
|
||||
String readConverterExp = attr.readConverterExp();
|
||||
String separator = attr.separator();
|
||||
if (StringUtils.isNotEmpty(dateFormat) && StringUtils.isNotNull(value))
|
||||
{
|
||||
cell.setCellValue(DateUtils.parseDateToStr(dateFormat, (Date) value));
|
||||
}
|
||||
else if (StringUtils.isNotEmpty(readConverterExp) && StringUtils.isNotNull(value))
|
||||
{
|
||||
cell.setCellValue(convertByExp(String.valueOf(value), readConverterExp));
|
||||
cell.setCellValue(convertByExp(String.valueOf(value), readConverterExp, separator));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -619,20 +620,36 @@ public class ExcelUtil<T>
|
|||
*
|
||||
* @param propertyValue 参数值
|
||||
* @param converterExp 翻译注解
|
||||
* @param separator 分隔符
|
||||
* @return 解析后值
|
||||
* @throws Exception
|
||||
*/
|
||||
public static String convertByExp(String propertyValue, String converterExp) throws Exception
|
||||
public static String convertByExp(String propertyValue, String converterExp, String separator) throws Exception
|
||||
{
|
||||
StringBuilder propertyString = new StringBuilder();
|
||||
try
|
||||
{
|
||||
String[] convertSource = converterExp.split(",");
|
||||
for (String item : convertSource)
|
||||
{
|
||||
String[] itemArray = item.split("=");
|
||||
if (itemArray[0].equals(propertyValue))
|
||||
if (StringUtils.containsAny(separator, propertyValue))
|
||||
{
|
||||
return itemArray[1];
|
||||
for (String value : propertyValue.split(separator))
|
||||
{
|
||||
if (itemArray[0].equals(value))
|
||||
{
|
||||
propertyString.append(itemArray[1] + separator);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (itemArray[0].equals(propertyValue))
|
||||
{
|
||||
return itemArray[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -640,7 +657,7 @@ public class ExcelUtil<T>
|
|||
{
|
||||
throw e;
|
||||
}
|
||||
return propertyValue;
|
||||
return StringUtils.stripEnd(propertyString.toString(), separator);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -648,20 +665,36 @@ public class ExcelUtil<T>
|
|||
*
|
||||
* @param propertyValue 参数值
|
||||
* @param converterExp 翻译注解
|
||||
* @param separator 分隔符
|
||||
* @return 解析后值
|
||||
* @throws Exception
|
||||
*/
|
||||
public static String reverseByExp(String propertyValue, String converterExp) throws Exception
|
||||
public static String reverseByExp(String propertyValue, String converterExp, String separator) throws Exception
|
||||
{
|
||||
StringBuilder propertyString = new StringBuilder();
|
||||
try
|
||||
{
|
||||
String[] convertSource = converterExp.split(",");
|
||||
for (String item : convertSource)
|
||||
{
|
||||
String[] itemArray = item.split("=");
|
||||
if (itemArray[1].equals(propertyValue))
|
||||
if (StringUtils.containsAny(separator, propertyValue))
|
||||
{
|
||||
return itemArray[0];
|
||||
for (String value : propertyValue.split(separator))
|
||||
{
|
||||
if (itemArray[1].equals(value))
|
||||
{
|
||||
propertyString.append(itemArray[0] + separator);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (itemArray[1].equals(propertyValue))
|
||||
{
|
||||
return itemArray[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -669,7 +702,7 @@ public class ExcelUtil<T>
|
|||
{
|
||||
throw e;
|
||||
}
|
||||
return propertyValue;
|
||||
return StringUtils.stripEnd(propertyString.toString(), separator);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue