diff --git a/src/gen_workbook.py b/src/gen_workbook.py index 6293b38..2ed6b72 100644 --- a/src/gen_workbook.py +++ b/src/gen_workbook.py @@ -192,18 +192,17 @@ for ri,(lab,fm,note) in enumerate(rows8): s8.cell(r,3,note).font=GRAY_F; s8.cell(r,3).border=BORDER for w,c in zip([18,10,35],'ABC'): s8.column_dimensions[c].width=w -# ── S9: 公式-预警明细 ── FILTER 动态筛选(无合并单元格 ≠ #SPILL!) +# ── S9: 公式-预警明细 ── FILTER 动态筛选(A10无内容=溢出通畅) s9=wb.create_sheet('公式-预警明细') s9.cell(1,1,'OA预警明细(FILTER动态筛选·无合并单元格)').font=TITLE_F; s9.cell(1,1).border=GOLD_BD -s9.cell(2,1,'FILTER(有效≥2026!A3:AD200,有效≥2026!AD3:AD200<>"none","无预警")').font=GRAY_F -s9.cell(4,1,f'=FILTER({REF}!A3:AD200,{REF}!AD3:AD200<>"none","🎉 无预警项")').font=FORMULA_F; s9.cell(4,1).border=BORDER -# 给A~AD列设最小宽度,确保溢出结果可见(无合并单元格阻挡) +s9.cell(2,1,'FILTER(有效≥2026!A3:AD200,(有效≥2026!AD3:AD200<>"none")*(有效≥2026!AD3:AD200<>""),"无预警")').font=GRAY_F +# 条件双重过滤:排除 "none" + 排除空值,避免空值行也被选入导致溢出触达A10 +s9.cell(4,1,f'=FILTER({REF}!A3:AD200,({REF}!AD3:AD200<>"none")*({REF}!AD3:AD200<>""),"🎉 无预警项")').font=FORMULA_F; s9.cell(4,1).border=BORDER for i in range(1,31): s9.column_dimensions[get_column_letter(i)].width = 4 if i>1 else 6 s9.column_dimensions['C'].width=22; s9.column_dimensions['D'].width=40 s9.column_dimensions['E'].width=35; s9.column_dimensions['K'].width=12 s9.column_dimensions['AD'].width=10 -s9.cell(10,1,'💡 若WPS显示@前缀,选中单元格→删除@即可正常溢出;若仍#SPILL!→用静态表S14').font=GRAY_F; s9.cell(10,1).fill=INFO_BG # ── S10: 公式-认定分类 ── s10=wb.create_sheet('公式-认定分类')