Closed YangJingf closed 2 months ago
List<List<String>> exportHeader = Lists.newArrayList();
exportHeader.addAll(Lists.newArrayList("期间1", "Accounting Period1"));// 这里表示第1列中,第1、2行表头
exportHeader.addAll(Lists.newArrayList("期间2", "Accounting Period2"));// 这里表示第2列中,第1、2行表头
exportHeader.addAll(Lists.newArrayList("期间3", "Accounting Period3"));// 这里表示第3列中,第1、2行表头
EasyExcel.write(response.getOutputStream()).sheet(sheetName).head(exportHeader).doWrite(exportBody);
@ExcelProperty(value = {"所属账期", "所属账期"})
想实现导出的时候,两行标头分别是 通过修改HeaderList的方法还是没有用,请问这个应该怎么改呢
@Override
public void beforeCellCreate(CellWriteHandlerContext context) {
if (!context.getHead()) {
return;
}
final List<String> originHeadNames = context.getHeadData().getHeadNameList();
if (CollectionUtils.isEmpty(originHeadNames)) {
return;
}
List<String> newHeadNames = new ArrayList<>();
newHeadNames.add(context.getHeadData().getHeadNameList().get(0));
newHeadNames.add(PlaceholderResolver.resolve(originHeadNames.get(1)));
context.getHeadData().setHeadNameList(newHeadNames);
}
现在的标头的设置
@ExcelProperty(value = "期间")
想实现的效果,中英文话
我的做法
问题
当@ExcelProperty(value = "期间") 配置的时候,value如果是单个字段,就只会渲染一次标头,哪怕是把HeaderList设置成多个,也只会生成一个。请问要怎么样配置一个value才会生成多表头呢。官网的方案是value={name1,name2},但是这种的话,改动代价很大,相当于每个@ExcelProperty都需要修改