easyexcel ExcelProperty国际化

    public static void setExcelPropertyI18n(Class<?> clazz, Locale locale) {
        Field[] fields = clazz.getDeclaredFields();
        for (Field field : fields) {
            if (field.isAnnotationPresent(ExcelProperty.class)) {
                ExcelProperty excelProperty = field.getAnnotation(ExcelProperty.class);
                InvocationHandler invocationHandler = Proxy.getInvocationHandler(excelProperty);
                Field memberValues = null;
                try {
                    memberValues = invocationHandler.getClass().getDeclaredField("memberValues");
                    memberValues.setAccessible(true);
                    Map memberValuesMap = (Map) memberValues.get(invocationHandler);
                    String[] value = (String[]) memberValuesMap.get("value");
                    if (StringUtils.isNotEmpty(value[0])){
                        memberValuesMap.put("value",new String[]{MessageUtils.messageByLocale(locale,value[0])});
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }

你可能感兴趣的:(JavaSE,java,easyexcel)