EasyExcel实现级联下拉框

该文章已生成可运行项目,

EasyExcel版本: 3.3.4
JDK: 17

最近项目有个需求导出excel需要在省和市两列实现级联下拉选择框,特地记录一下

EasyExcel 实现级联下拉框需要创建一个类实现SheetWriteHandler 接口, 下面给出Demo,
这个类无需修改可以直接使用, 但是需要注意由于实现级联下拉需要创建一个隐藏的sheet页,
所以在读取这个excel的时候需要从第二个sheet页开始读取, 跳过第一个sheet

public class CascadeSheetWriteHandler implements SheetWriteHandler {
   
   

	// sheetName
	private final String sheetName;
	// 下拉框从哪一行开始
	private final int firstRow;
	// 下拉框从哪一行结束
	private final int lastRow;
	// 父级下拉框在哪一列 注意: 从0开始
	private final int parentColumnIndex;
	// 子级下拉框在哪一列 注意: 从0开始
	private final int childColumnIndex;
	// 父级与子级的映射关系, key为父级 value为子级
	private final Map<String, List<String>> cascadeMap;

	public CascadeSheetWriteHandler(String sheetName, int provinceColumnIndex, int cityColumnIndex, Map<String, List<String>> provinceCityMap) {
   
   
		this.sheetName = sheetName;
		this.childColumnIndex = cityColumnIndex;
		this.parentColumnIndex = provinceColumnIndex;
		this.cascadeMap = provinceCityMap;
		this.firstRow = 1;
		this.lastRow = 10000;
	}

	public CascadeSheetWriteHandler(String sheetName, int provinceColumnIndex, int cityColumnIndex, int firstRow, int lastRow, Map<String, List<String>> provinceCityMap) {
   
   

		if (firstRow > lastRow) {
   
   
			throw new IllegalStateException("The first row must be less than the last row");
		}

		this.sheetName = sheetName;
		
本文章已经生成可运行项目
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值