
目录
说明
本文章基于上个案例来说,链接在上面。

如果改动了这里可以发现,其实对sheet的名字并不影响,所以这是个伪代码,那么怎么去动态设置sheet的名称呢,肯定会有这种需求,网上案例也有,那我就基于我上一篇案例来继续说明,如何动态设置sheet名称。
主要类:
import com.alibaba.excel.write.handler.SheetWriteHandler;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder;
/**
* 自定义模板导出sheet拦截器
*/
public class CustomTemplateSheetStrategy implements SheetWriteHandler {
private Integer sheetNo;
private String sheetName;
public CustomTemplateSheetStrategy(String sheetName) {
this.sheetName = sheetName;
}
public CustomTemplateSheetStrategy(Integer sheetNo, String sheetName) {
this.sheetNo = sheetNo;
this.sheetName = sheetName;
}
@Override
public void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
}
/**
* 功能:动态修改模板中sheet的名称
* sheet创建完成后调用
*
* @param writeWorkbookHolder
* @param writeSheetHolder
*/
@Override
public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
if (sheetName == null) {
return;
}
if (sheetNo == null) {
sheetNo = 0;
}
//往哪个sheet设置名称
writeWorkbookHolder.getCachedWorkbook().setSheetName(sheetNo, sheetName);
}
}
controller:
<

文章介绍了如何使用阿里巴巴的ExcelWriteHandler在Java中动态设置Excelsheet的名称,通过创建自定义的`CustomTemplateSheetStrategy`类并注册到`SheetWriteHandler`中,实现了在模板导出时修改或新增sheet的名字。示例代码展示了在EasyExcel库的帮助下,如何处理多个sheet并动态命名。
最低0.47元/天 解锁文章
2985





