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);
|
}
|
}
|