前端页面导出问题?
本帖最后由 亿度 于 2024-3-15 13:40 编辑定义两个过滤条件名称
通过两个筛选条件可以筛选出来6条数据,结果导出的时候,就只按照工艺名称的筛选条件导出数据,没有按照组合的筛选条件导出数据,
代码如下:// 获取筛选单元格的值const filterCellItemName = 'filterCellItemName';
const filterCellProcessname = 'filterCellProcessname';
const filterValueItemName = Forguncy.Page.getCell(filterCellItemName).getValue();
const filterValueProcessname = Forguncy.Page.getCell(filterCellProcessname).getValue();
// 获取原始数据数组
const data = Forguncy.CommandHelper.getVariableValue("Data");
// 如果没有数据或数据不是数组,则停止处理
if (!data || !Array.isArray(data)) {
console.error('数据为空或不是数组');
return;
}
// 初始化筛选条件数组
const filterValuesItemName = filterValueItemName ? filterValueItemName.split(',') : [];
const filterValuesProcessname = filterValueProcessname ? filterValueProcessname.split(',') : [];
// 筛选数据 这里没有什么问题呀,感觉是活字格的API问题。:lol
const filteredData = data.filter(item => {
return (
filterValuesItemName.length === 0 || filterValuesItemName.includes(item.ItemName) &&
filterValuesProcessname.length === 0 || filterValuesProcessname.includes(item.Processname)
);
});
// 如果没有筛选后的数据,则输出提示信息
if (filteredData.length === 0) {
console.log('没有找到匹配项,筛选后的数据为空');
return;
}
// 导出筛选后的数据为Excel文件
const workbook = XLSX.utils.book_new();
const sheet = XLSX.utils.json_to_sheet(filteredData);
XLSX.utils.book_append_sheet(workbook, sheet, "Sheet1");
XLSX.writeFile(workbook, 'filtered_data.xlsx');
A || B && C || D
修改为
(A || B) && (C || D)
试试
这个不加括号和加括号结果是不一样的
可以在Chrome开发者工具中找到命令中的JS代码,可以打断点,单步调试,就知道问题出在哪了。
本帖最后由 亿度 于 2024-3-15 14:51 编辑
robert 发表于 2024-3-15 14:19
可以在Chrome开发者工具中找到命令中的JS代码,可以打断点,单步调试,就知道问题出在哪了。
非常感谢,我调试,筛选条件是有值的。
总共1690条数据,筛选出来392条数据,实际应该只有6条数据。所以不知道错在哪里了。
程序现在就执行的是后面的筛选条件,没有执行"并且"的关系.
本帖最后由 Shawn.Liu 于 2024-3-15 16:45 编辑
问题跟进:已远程联系大佬处理,在过滤时需根据场景给&&左右两边的条件加括号提高优先级,在导出时已生效,不过在这个场景下建议您可以将过滤数据放在设置变量命令的查询条件中。
{:5_110:}
页:
[1]