在用java导出Excel的时候,表头不能写死,而是根据情况变化的。
实体类如下:
public class EquSysExportNoChainVo {
@Excel(name = "")
private String thisValue; //当前值
}
给实体类的@Excel的name赋值的方法如下:
Field field = clazz.getDeclaredField(fieldName);
Class clazz = EnergyExportVo.class;//实体类class
String name = "能耗量(t)";
Excel excelInterface = field.getAnnotation(Excel.class);//@Excel注解
InvocationHandler h = Proxy.getInvocationHandler(excelInterface);
// 获取 AnnotationInvocationHandler 的 memberValues 字段
Field hField = h.getClass().getDeclaredField("memberValues");
// 因为字段是 private 修饰,所以要打开权限
hField.setAccessible(true);
// 获取 memberValues
Map<String, Object> memberValues = (Map<String, Object>) hField.get(h);
memberValues.put("name", StringUtils.isNotBlank(name) ? name : "");
本文介绍了如何在Java中使用实体类和@Excel注解动态生成Excel表头,通过获取字段信息并修改其名称属性,使得表头内容根据实际情况变化。

795

被折叠的 条评论
为什么被折叠?



