實現邏輯代碼:
//獲得配置
JexlExpressionEvaluator evaluator = (JexlExpressionEvaluator)transformer.getTransformationConfig().getExpressionEvaluator();
//設置靜默模式,不報警告
evaluator.getJexlEngine().setSilent(true);
//函數強制,自定義功能
Map<String, Object> funcs = new HashMap<String, Object>();
funcs.put("utils", new JxlsUtils()); //添加自定義功能
evaluator.getJexlEngine().setFunctions(funcs);
//必須要這個,否者表格函數統計會錯亂
jxlsHelper.processTemplate(context, transformer);
這裏的utils就是要在excel中使用的函數類名。
JxlsUtils類
public class JxlsUtils {
/**
* 字符串爲空轉換爲特定字符
* @param target 需要驗證的字符串
* @param fit 匹配的字符串
* @param change 匹配成功要轉換的字符串
*/
public String fitToChange(String target, String fit, String change) {
if (fit.equals(target)) {
return change;
}
return target;
}
}
excel模板中使用: