            from openpyxl import load_workbook
            source=folder.parent/'source.xlsx' if (folder.parent/'source.xlsx').exists() else folder/'source.xlsx';before=hashlib.sha256(source.read_bytes()).hexdigest();wb=load_workbook(source)
            bad=[name for name,value in wb.defined_names.items() if '#REF!' in value.attr_text];check('只列出真实失效名称',bad==output['bad_names']==['Revenue'])
            for name in bad:wb.defined_names[name].attr_text=output['repair_to'][name]
            wb.save(folder/'repaired.xlsx');artifacts.append('repaired.xlsx');r=load_workbook(folder/'repaired.xlsx');check('Revenue回读指向实际单元格',list(r.defined_names['Revenue'].destinations)==[('Sales','$B$2:$B$4')]);check('TaxRate常量未改',r.defined_names['TaxRate'].attr_text=='0.06');check('原件SHA保持一致',hashlib.sha256(source.read_bytes()).hexdigest()==before)
            values=[r['Sales'][cell].value for cell in ['B2','B3','B4']];tax=sum(D(str(x)) for x in values)*D(r.defined_names['TaxRate'].attr_text);check('已定义区域对应税额独立验算',tax==D('36.00'));result={'bad_names':bad,'definitions':{k:v.attr_text for k,v in r.defined_names.items()},'independent_expected_tax':money(tax),'formula_calculated_by_openpyxl':False}
