如果是固定的值 用 {{}}? 即可 但是如果是循環表格,那么就需要制定模板為如圖
然后在處理表格數據時候:
/*** 傳入 節點對象 返回生成的word文檔* @param flangeJoint* @return* @throws IOException*/private XWPFTemplate getXwpfTemplate(CmComplaintEntity flangeJoint) throws IOException {Map<String, Object> map = new HashMap<>();
// 準備表格循環數據List<Map<String, Object>> tableData = prepareTableData(flangeJoint);// map.put("table", table);map.put("jointNo", "123");map.put("table", tableData);// 導出PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();Resource resource = resolver.getResource("classpath:/templates/jointReport_en.docx");Configure config = Configure.builder().bind("table", new LoopRowTableRenderPolicy()).build();XWPFTemplate template = XWPFTemplate.compile(resource.getInputStream(), config).render(map);
// XWPFTemplate template = XWPFTemplate.compile(resource.getInputStream()).render(map);return template;}// 準備表格循環數據private List<Map<String, Object>> prepareTableData(CmComplaintEntity entity) {List<Map<String, Object>> list = new ArrayList<>();for (int i = 0; i < 6; i++) {Map<String, Object> row = new HashMap<>();row.put("index", i + 1); // 序號row.put("name", "名稱"+ i); // 名稱row.put("value", "值"+i); // 值list.add(row);}return list;}
具體 全部的導出邏輯 請看我的上一期Java如何導出word(根據模板生成),通過word轉成pdf,放壓縮包-CSDN博客