package com.qianwen.core.excel.extend.processor; import java.lang.reflect.Method; import org.springframework.context.expression.MethodBasedEvaluationContext; import org.springframework.core.DefaultParameterNameDiscoverer; import org.springframework.core.ParameterNameDiscoverer; import org.springframework.expression.ExpressionParser; import org.springframework.expression.spel.standard.SpelExpressionParser; public class NameSpelExpressionProcessor implements NameProcessor { private static final ParameterNameDiscoverer NAME_DISCOVERER = new DefaultParameterNameDiscoverer(); private static final ExpressionParser PARSER = new SpelExpressionParser(); @Override // org.springblade.core.excel.extend.processor.NameProcessor public String doDetermineName(Object[] args, Method method, String key) { if (!key.contains("#")) { return key; } Object value = PARSER.parseExpression(key).getValue(new MethodBasedEvaluationContext((Object) null, method, args, NAME_DISCOVERER)); if (value == null) { return null; } return value.toString(); } }