|
|
|
@ -6,6 +6,7 @@ import java.io.IOException; |
|
|
|
|
import java.io.InputStream; |
|
|
|
|
import java.io.OutputStream; |
|
|
|
|
import java.lang.reflect.Field; |
|
|
|
|
import java.lang.reflect.Method; |
|
|
|
|
import java.math.BigDecimal; |
|
|
|
|
import java.text.DecimalFormat; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
@ -333,6 +334,10 @@ public class ExcelUtil<T> |
|
|
|
|
{ |
|
|
|
|
val = reverseDictByExp(Convert.toStr(val), attr.dictType(), attr.separator()); |
|
|
|
|
} |
|
|
|
|
else if (!attr.handler().equals(ExcelHandlerAdapter.class)) |
|
|
|
|
{ |
|
|
|
|
val = dataFormatHandlerAdapter(val, attr); |
|
|
|
|
} |
|
|
|
|
else if (ColumnType.IMAGE == attr.cellType() && StringUtils.isNotEmpty(pictures)) |
|
|
|
|
{ |
|
|
|
|
PictureData image = pictures.get(row.getRowNum() + "_" + entry.getKey()); |
|
|
|
@ -729,6 +734,10 @@ public class ExcelUtil<T> |
|
|
|
|
{ |
|
|
|
|
cell.setCellValue((((BigDecimal) value).setScale(attr.scale(), attr.roundingMode())).toString()); |
|
|
|
|
} |
|
|
|
|
else if (!attr.handler().equals(ExcelHandlerAdapter.class)) |
|
|
|
|
{ |
|
|
|
|
cell.setCellValue(dataFormatHandlerAdapter(value, attr)); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
// 设置列类型
|
|
|
|
@ -901,6 +910,28 @@ public class ExcelUtil<T> |
|
|
|
|
return DictUtils.getDictValue(dictType, dictLabel, separator); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 数据处理器 |
|
|
|
|
* |
|
|
|
|
* @param value 数据值 |
|
|
|
|
* @param excel 数据注解 |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public String dataFormatHandlerAdapter(Object value, Excel excel) |
|
|
|
|
{ |
|
|
|
|
try |
|
|
|
|
{ |
|
|
|
|
Object instance = excel.handler().newInstance(); |
|
|
|
|
Method formatMethod = excel.handler().getMethod("format", new Class[] { Object.class, String[].class }); |
|
|
|
|
value = formatMethod.invoke(instance, value, excel.args()); |
|
|
|
|
} |
|
|
|
|
catch (Exception e) |
|
|
|
|
{ |
|
|
|
|
log.error("不能格式化数据 " + excel.handler(), e.getMessage()); |
|
|
|
|
} |
|
|
|
|
return Convert.toStr(value); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 合计统计信息 |
|
|
|
|
*/ |
|
|
|
|