package com.estate.expert.admin.stat.report.render; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.deepoove.poi.policy.DynamicTableRenderPolicy; import org.apache.poi.xwpf.usermodel.XWPFTable; /** * 设备表格渲染策略 */ public class DeviceTablePolicy extends DynamicTableRenderPolicy { /** * 渲染设备表格 * @param table 表格 * @param data 数据 * @throws Exception 异常 */ @Override public void render(XWPFTable table, Object data) throws Exception { var deviceRecords = (JSONArray) data; for (var d : deviceRecords) { var deviceInfo = (JSONObject) d; var records = deviceInfo.getJSONArray("问题"); var name = deviceInfo.getString("设备编号"); for (var record : records) { var info = (JSONObject) record; var row = table.insertNewTableRow(table.getRows().size() ); RenderHelper.renderCell(row, name); RenderHelper.renderCell(row, info.getString("检查问题")); RenderHelper.renderCell(row, info.getString("隐患等级")); } } // 将第0列的连续包含相同内容的单元格合并 RenderHelper.mergeCellsVertically(table, 0, 0); } }