java poi导出带有下拉框的模板(1)
- 实体类
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class ImportCommonUser {
@Excel(name = "账号类型",width = 25,isImportField = "true_st",replace = {"长期_1", "临时_2"}, suffix = "账号")
private Integer accountCycle;
@Excel(name = "工号",width = 25, isImportField = "true_st")
private String wkno;
@Excel(name = "姓名",width = 25, isImportField = "true_st")
private String userName;
@Excel(name = "角色",width = 25, isImportField = "true_st")
private String roleName;
- 控制器
@PostMapping("/downloadModel")
public ResponseInfo downloadModel(HttpServletRequest request, HttpServletResponse response, @RequestBody Map map){
String fileName = (String) map.get("fileName");
ExportParams exportParams = new ExportParams();
exportParams.setSheetName(fileName);
response.setContentType("application/x-download;charset=UTF-8");
response.addHeader("Content-disposition", "filename=demo.xls");
Workbook workbook = null;
if (StringUtils.isBlank(fileName)) {
fileName = "user";
}
List<ImportCommonUser> list = new ArrayList<>();
workbook = ExcelExportUtil.exportExcel(exportParams, ImportCommonUser.class, list);
List<String> roleNames = roleService.queryRoleNames();
selectRoleList(workbook,3,3, roleNames.toArray(new String[roleNames.size()]));
selectList(workbook, 0, 0, new String[]{"长期账号","临时账号"});
OutputStream fos = null;
try {
fos = response.getOutputStream();
workbook.write(fos);
} catch (IOException e) {
e.printStackTrace();
request.setAttribute("resultCode",500);
return new ResponseInfo(false);
} finally {
try {
if (fos != null) {
fos.close();
}
} catch (IOException e) {
request.setAttribute("resultCode",500);
e.printStackTrace();
}
}
request.setAttribute("resultCode",200);
return null;
}
public static void selectList(Workbook workbook,int firstCol,int lastCol,String[] strings ){
Sheet sheet = workbook.getSheetAt(0);
CellRangeAddressList cellRangeAddressList = new CellRangeAddressList(1, 65535, firstCol, lastCol);
DVConstraint dvConstraint = DVConstraint.createExplicitListConstraint(strings);
HSSFDataValidation dataValidation = new HSSFDataValidation(cellRangeAddressList, dvConstraint);
sheet.addValidationData(dataValidation);
}
public static void selectRoleList(Workbook workbook,int firstCol,int lastCol,String[] strings ){
Sheet sheet = workbook.getSheetAt(0);
CellRangeAddressList cellRangeAddressList = new CellRangeAddressList(1, 65535, firstCol, lastCol);
DVConstraint dvConstraint = DVConstraint.createExplicitListConstraint(strings);
HSSFDataValidation dataValidation = new HSSFDataValidation(cellRangeAddressList, dvConstraint);
sheet.addValidationData(dataValidation);
}
- 效果图