jxls简单导出
导入依赖
<dependency>
<groupId>org.jxls</groupId>
<artifactId>jxls</artifactId>
<version>2.8.1</version>
</dependency>
<dependency>
<groupId>org.jxls</groupId>
<artifactId>jxls-poi</artifactId>
<version>2.8.1</version>
</dependency>
创建Excel模板中使用的标签语句
必需批注: jx:area(lastCell="")
使用${}取值
循环批注: jx:each(items="" var="record" varIndex="index" lastCell="") ${record.}
横向循环: jx:each(items="" var="record" lastCell="*" direction="RIGHT")
java代码
/**
*
* @param is 读取模板的输入流
* @param os 输出流
* @param model 参数
* @throws IOException
*/
public static void exportExcel(InputStream is, OutputStream os, Map<String, Object> model) throws IOException {
Context context = getContext(model);
// 添加自定义语句
// XlsCommentAreaBuilder.addCommandMapping(EachMatrixCommand.COMMAND_NAME, EachMatrixCommand.class);
JxlsHelper jxlsHelper = JxlsHelper.getInstance();
Transformer transformer = jxlsHelper.createTransformer(is, os);
//获得配置
JexlExpressionEvaluator evaluator = (JexlExpressionEvaluator) transformer.getTransformationConfig().getExpressionEvaluator();
Map<String, Object> funcs = new HashMap<>();
funcs.put("utils", new JxlsUtils()); //添加自定义功能
JexlBuilder jb = new JexlBuilder();
jb.namespaces(funcs);
//jb.silent(true); //设置静默模式,不报警告
JexlEngine je = jb.create();
evaluator.setJexlEngine(je);
//必须要这个,否者表格函数统计会错乱
jxlsHelper.setUseFastFormulaProcessor(false).processTemplate(context, transformer);
}
public static Context getContext(Map<String, Object> model) {
Context context = PoiTransformer.createInitialContext();
if (model != null) {
for (String key : model.keySet()) {
context.putVar(key, model.get(key));
}
}
return context;
}
每个牛B人物背后都有段苦逼的岁月,只要像SB一样坚持,终将牛B!

浙公网安备 33010602011771号