代码块:表格行数据按照分类以及行数整合
场景/问题描述
需要按照分类为中干以及改任来进行重组数组,并且按照4行为一组进行重组为新的一行。以便于打印数据时,减少打印纸张
解决思路
通过代码块先根据类别提取新的数组,然后再根据数组长度进行4行为一组进行重组,最后进行输出
配置过程
代码注释
table:插入表单表格字段
field_208578173:field_id需要替换表格对应列的id

https://exiao.yuque.com/enzu8l/oy1eh8/bhfdnqmx67wfox04?singleDoc# 《如何在代码块中分辨表格的不同列/如何获取表格子字段的field_id?》
function processTable(table) {
// 将table数组根据类别拆分
let zhongan = table.filter(item => item.类别 === "中干");
let gairen = table.filter(item => item.类别 === "改任");
// 对数组进行处理,每4个元素合并为一个对象,并确保每个对象都有8个键值对
function groupItems(items) {
let grouped = [];
for (let i = 0; i < items.length; i += 4) {
let group = {};
for (let j = 0; j < 4; j++) {
group["姓名" + j] = items[i + j] ? items[i + j].姓名 : null;
group["评分" + j] = items[i + j] ? items[i + j].评分 : null;
}
grouped.push(group);
}
return grouped;
}
// 处理后的数组
let list1 = groupItems(zhongan);
let list2 = groupItems(gairen);
// 输出结果
return { list1, list2 };
}
const table = qf_field.{表格$$21A8BD7EA$$};
const newtable = table.map(item => {
const newItem = {
"类别": item.field_208578173,
"姓名": item.field_208578174,
"评分": item.field_208578175
};
return newItem;
});
// 调用函数处理table
var res =processTable(newtable);
// 输出结果
qf_output={res};
代码测试

解析配置


实现效果
