RuoYi-Vue v3.8.6自定义数据处理器

本文介绍了如何在Java实体类中使用Excel注解指定自定义数据处理器MyDataHandler,该处理器根据单元格值的内容,如包含特定元素,从字典中获取对应值,以满足业务场景中的数据格式需求。
摘要由CSDN通过智能技术生成

有时候我们希望数据展现为一个特殊的格式,或者需要对数据进行其它处理。Excel注解提供了自定义数据处理器以满足各种业务场景。

1、在实体类用Excel注解handler属性指定自定义的数据处理器

public class Device extends BaseEntity {
    /**
     * 设备型号
     */
    @Excel(name = "设备型号", handler = MyDataHandler.class, args = {"sblx_sw_eci", "sblx_dw_hw", "sblx_dw_mkn", "sblx_dw_zx"})
    private String deviceModel;
}

2、编写数据处理器MyDataHandler继承ExcelHandlerAdapter,返回值为处理后的值。

public class MyDataHandler implements ExcelHandlerAdapter {
    @Override
    public Object format(Object value, String[] args, Cell cell, Workbook wb)
    {
        // value 为返回单元格显示内容值
		// args 为excel注解传递的args数组值
		// cell 为单元格对象
		// wb 为工作簿对象
		return value;
    }
}

3、编写示例,根据单元格值是否包含特定元素,来获取特定字典值

public class MyDataHandler implements ExcelHandlerAdapter {
    @Override
    public Object format(Object value, String[] args, Cell cell, Workbook wb) {
        if (StringUtils.isNotNull(value)) {
            String cellValue = value.toString();
            // 省网ECI SDH、地网华为 SDH、地位马可尼 SDH、地网中兴 PTN
            if (cellValue.contains("XDM")) {
                return DictUtils.getDictValue(args[0], cellValue);
            } else if (cellValue.contains("OSN")) {
                return DictUtils.getDictValue(args[1], cellValue);
            } else if (cellValue.contains("OMS") || cellValue.contains("SPO")) {
                return DictUtils.getDictValue(args[2], cellValue);
            } else if (cellValue.contains("ZXCTN")) {
                return DictUtils.getDictValue(args[3], cellValue);
            } else {
                return "";
            }
        } else {
            return "";
        }
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值