使用EasyExcel导出时,设置单元格的下拉框。
public class DropDownHandler implements SheetWriteHandler {
@Override
public void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
}
@Override
public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
Sheet sheet = writeSheetHolder.getSheet();
Map<Integer, String[]> mapDropDown = new LinkedHashMap<>();
if (writeSheetHolder.getSheetName().equals("供应商") || writeSheetHolder.getSheetName().equals("客户")) {
mapDropDown.put(0, new String[]{"T期", "T0年度", "T-1年度", "T-2年度"});
mapDropDown.put(4, new String[]{"是", "否"});
mapDropDown.put(5, new String[]{"是", "否"});
} else if (writeSheetHolder.getSheetName().equals("往来款公司")) {
mapDropDown.put(0, new String[]{"T期", "T0年度", "T-1年度", "T-2年度"});
mapDropDown.put(3, new String[]{"是", "否"});
mapDropDown.put(4, new String[]{"是", "否"});
}else if (writeSheetHolder.getSheetName().equals("发行人其他敏感自然人")) {
mapDropDown.put(1, new String[]{"控股股东及实际控制人", "持股5%以上的自然人股东及其关系密切的家庭成员", "发行人董、监、高及与其关系密切的家庭成员", "控股股东及实际控制人的董、监、高及与其关系密切的家庭成员","实质重于形势认定的关联方", "其他关联方"});
}
DataValidationHelper helper = sheet.getDataValidationHelper();
//设置下拉框
for (Map.Entry<Integer, String[]> entry : mapDropDown.entrySet()) {
/*起始行、终止行、起始列、终止列 起始行为1即表示表头不设置**/
CellRangeAddressList addressList = new CellRangeAddressList(1, 65535, entry.getKey(), entry.getKey());
/*设置下拉框数据**/
DataValidationConstraint constraint = helper.createExplicitListConstraint(entry.getValue());
DataValidation dataValidation = helper.createValidation(constraint, addressList);
sheet.addValidationData(dataValidation);
}
}
}