比如我查出来的dto,里面有个一bool字段,我希望在excel中显示"有效","无效". 现在好像只能先定义一个额外string字段,然后转化出结果并赋值给string字段,属性也要打在这个string字段上. 第一污染了dto,第二琐碎,第三不直观. 希望有个类似于unix管道操作,或者前端filter概念的方式去输出. 比如可以让使用者在bool(int,枚举)字段上自定义一个lambda表达式
(v)->v?"有效":"无效"
比如我查出来的dto,里面有个一bool字段,我希望在excel中显示"有效","无效". 现在好像只能先定义一个额外string字段,然后转化出结果并赋值给string字段,属性也要打在这个string字段上. 第一污染了dto,第二琐碎,第三不直观. 希望有个类似于unix管道操作,或者前端filter概念的方式去输出. 比如可以让使用者在bool(int,枚举)字段上自定义一个lambda表达式
(v)->v?"有效":"无效"
或者让ExcelProperty注解target可以支持method,这样我也能在get方法上写这个逻辑. 但是现在都是先转map BeanMap beanMap = BeanMap.create(oneRowData); 也有点不好操作.
我觉得问题的根源还是TypeUtil这个类写的有点死,是否可以像jackson那样用工厂模式装一下,让使用者可以自己决定要不要去定制自己的输出逻辑.
同希望添加这特性,TypeUtil有点太死
简直坑爹,想要扩展TypeUtil都不行,只能改源码。。。
哈哈 这个已经和作者沟通过了,估计一两个月能出来,包括自定义类型转换。到时自定义一个转换器 放进去就行
没有自定义类型转换就算啦。他那个TypeUtil里还写写错了: if (Double.class.equals(field.getType()) || double.class.equals(field.getType())) { if (null != format && !"".equals(format)) { int n = getCountOfChar(value, '0'); return Double.parseDouble(TypeUtil.formatFloat0(value, n)); } else { return Double.parseDouble(TypeUtil.formatFloat(value)); } } 四舍五入的时候,根本没有取format属性规定的小数位。int n = getCountOfChar(value, '0'); value有几个“0”跟四舍五入有啥关系!
希望这个功能早点出来,要不然太繁琐