easypoi和poi冲突_easypoi导出Excel遇到的坑

当对象属性名称第二个字母为大写时会导致导出对应属性数据为空情况。

举例:public String aBTest;

easypoi通过PoiReflectorUtil.class工具类(具体调用的方法见下面的代码)依据对象的方法名获取其对应的属性,结果为:ABTest,与实际属性不一致(实际属性应为:aBTest),所以会导致写入Excel文件数据为空。

导致对应属性导出为空的原因:

easypoi在处理属性时判断不够全面,使用时需要注意

判断逻辑:

(

name.length() == 1 || name.length() > 1 && !Character.isUpperCase(name.charAt(1))

)

出现问题的具体方法见下面代码:

PoiReflectorUtil.class

private static String methodToProperty(String name) {

if (name.startsWith("is")) {

name = name.substring(2);

} else {

if (!name.startsWith("get") && !name.startsWith("set")) {

throw new RuntimeException("Error parsing property name '" + name + "'. Didn't start with 'is', 'get' or 'set'.");

}

name = name.substring(3);

}

if (name.length() == 1 || name.length() > 1 && !Character.isUpperCase(name.charAt(1))) {

name = name.substring(0, 1).toLowerCase(Locale.ENGLISH) + name.substring(1);

}

return name;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值