|  | 
 
 发表于 2024-2-1 16:38:47
|
显示全部楼层 
| 1. 关于你之前发的帖子不见了的问题,可能是因为网络或者系统故障导致帖子被删除了。不过不用担心,你可以重新提问,我会尽力帮助你解决问题。 
 2.1 对于用户以“3+5+6=7+16+31+38”的方式录入多条行验证规则,我们可以使用正则表达式来识别并提取出其中的行号和列号。下面是一个简单的示例代码:
 
 
 复制代码import re
def extract_rules(rule_str):
    # 提取行号和列号,并将它们存储到一个列表中
    rows = re.findall(r'[0-9]+', rule_str)
    cols = re.findall(r'[A-Z]+', rule_str)
    return rows, cols
rule_str = '3+5+6=7+16+31+38'
rows, cols = extract_rules(rule_str)
print(rows)  # 输出:['3', '5', '6']
print(cols)  # 输出:['7', '16', '31', '38']
 2.2.1 对于行验证,我们可以通过在循环中逐一计算每一行的验证结果,然后将结果与规则中的值进行比较,进而判断是否满足验证规则。下面是一个示例代码:
 
 
 复制代码def validate_rows(sheet_validations, sheet_data):
    for sheet_name, validations in sheet_validations.items():
        rows = validations['rows']
        cols = validations['cols']
        
        # 遍历每一个要验证的行
        for row_nums in rows:
            # 获取每个行号对应的列值
            for col_num in cols[0]:
                # 计算规则中每一行的值
                row_values = []
                for num in row_nums:
                    row_values.append(sheet_data[sheet_name][num-1][col_num])
                # 比较计算结果与规则中的值是否相等
                if sum(row_values) != sheet_data[sheet_name][row_nums[-1]-1][col_num]:
                    print(f"验证失败:第{row_nums[-1]}行的{chr(ord('A')+col_num-1)}列的值不满足规则")
 2.2.2 对于列验证,我们可以使用类似的方法来进行计算和比较。下面是一个示例代码:
 
 
 复制代码def validate_cols(sheet_validations, sheet_data):
    for sheet_name, validations in sheet_validations.items():
        rows = validations['rows']
        cols = validations['cols']
        
        # 遍历每一个要验证的列
        for col_nums in cols:
            # 获取每个列号对应的行值
            for row_num in rows[0]:
                # 计算规则中每一列的值
                col_values = []
                for num in col_nums:
                    col_values.append(sheet_data[sheet_name][row_num-1][num])
                # 比较计算结果与规则中的值是否相等
                if sum(col_values) != sheet_data[sheet_name][row_num-1][col_nums[-1]]:
                    print(f"验证失败:第{row_num}行的{chr(ord('A')+col_nums[-1]-1)}列的值不满足规则")
 希望能解决你的问题!如果还有其他疑问,请继续提问。
 
 以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
 | 
 |