| | |
| | | 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;
|
| | |
| | | else if (StringUtils.isNotEmpty(attr.dictType()))
|
| | | {
|
| | | 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))
|
| | | {
|
| | |
| | | {
|
| | | cell.setCellValue((((BigDecimal) value).setScale(attr.scale(), attr.roundingMode())).toString());
|
| | | }
|
| | | else if (!attr.handler().equals(ExcelHandlerAdapter.class))
|
| | | {
|
| | | cell.setCellValue(dataFormatHandlerAdapter(value, attr));
|
| | | }
|
| | | else
|
| | | {
|
| | | // 设置列类型
|
| | |
| | | }
|
| | |
|
| | | /**
|
| | | * 数据处理器
|
| | | * |
| | | * @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);
|
| | | }
|
| | |
|
| | | /**
|
| | | * 合计统计信息
|
| | | */
|
| | | private void addStatisticsData(Integer index, String text, Excel entity)
|