模板中的数据有固定的,也有动态的,都在一个map中,如何能够对动态的那部分进行自动换行呢?
模板:

代码:
@Override
public void export(HttpServletResponse response, AGrainCustodianTransferRecord x) {
if (ObjectUtils.isEmpty(x.getBarnId())) {
throw new CheckedException("仅支持导出某一个仓房的数据,当然并未设置导出的仓房");
}
List<AGrainCustodianTransferRecord> list = selectAGrainCustodianTransferRecordList(x);
if (CollectionUtils.isEmpty(list)) {
throw new RuntimeException("导出数据不能为空!");
}
List<Map<String, Object>> dataList = new ArrayList<>();
// 创建一个 Map 来包含数据列表
Map<String, Object> dataMap = new HashMap<>();
for (AGrainCustodianTransferRecord record : list) {
Map<String, Object> map = Maps.newHashMap();
dataMap.put("barnNumber", ObjectUtils.isEmpty(dataMap.get("barnNumber")) ? record.getBarnNumber() : dataMap.get("barnNumber"));
dataMap.put("usedTime", ObjectUtils.isEmpty(dataMap.get("usedTime")) ? record.getBarnNumber() : dataMap.get("usedTime"));
dataMap.put("custodian", ObjectUtils.isEmpty(dataMap.get("custodian")) ? record.getBarnNumber() : dataMap.get("custodian"));
dataMap.put("leader", ObjectUtils.isEmpty(dataMap.get("leader")) ? record.getBarnNumber() : dataMap.get("leader"));
map.put("transferTime", record.getTransferTime());
map.put("transferBy", record.getTransferBy());
map.put("transferPage", record.getTransferPage());
map.put("receiver", record.getReceiver());
map.put("guardian", record.getGuardian());
map.put("notes", record.getNotes());
dataList.add(map);
}
dataMap.put("recordList", dataList);
try {
//设置workbook
String absolutePath = new File("zcl-modules/zcl-barn/src/main/resources/template/test.xlsx").getAbsolutePath();
TemplateExportParams params = new TemplateExportParams(absolutePath);
Workbook workbook = ExcelExportUtil.exportExcel(params, dataMap);
// 设置响应规则
response.setContentType("application/force-download");
response.setCharacterEncoding("utf-8");
response.setHeader("Content-Disposition",
"attachment;filename=" + URLEncoder.encode("保管员移交记录.xlsx", "UTF-8"));
workbook.write(response.getOutputStream());
} catch (Exception e) {
e.printStackTrace();
}
}