
SpreadCheetah条件格式实战如何为重复值和唯一值自动添加样式规则【免费下载链接】spreadcheetahSpreadCheetah is a high-performance .NET library for generating spreadsheet (Microsoft Excel XLSX) files.项目地址: https://gitcode.com/gh_mirrors/sp/spreadcheetahSpreadCheetah 是一款高性能的 .NET 库用于生成 Excel XLSX 文件。它的条件格式功能让你只需一行代码就能为重复值和唯一值单元格自动应用样式规则——无需手动遍历每个单元格Excel 打开文件时会自动完成高亮判断非常适合数据清洗、查重和报表场景。上图是一块纯色填充示例条件格式的Fill.Color就是用来给符合条件的单元格刷上这样的背景色的。为什么需要条件格式在 Excel 中手动设置重复值高亮需要选中区域 → 开始 → 条件格式 → 选择规则。而用 SpreadCheetah 生成文件时这条规则可以直接写进 XLSX 文件里✅自动生效文件打开后 Excel 自动计算并着色无需任何宏✅零性能开销规则由 Excel 负责求值SpreadCheetah 只负责写出规则✅API 极简一个构建器模式两行代码搞定三步上手创建重复值规则第 1 步安装 NuGet 包在 .NET 项目中通过 NuGet 包管理器安装SpreadCheetah包即可开始使用。第 2 步定义样式ConditionalFormatStyle 支持四个部分填充色、字体、边框和数字格式。只设置需要的属性即可未设置的保持默认var style new ConditionalFormatStyle { Fill new() { Color Color.Red }, // 红色背景 Font new() { Color Color.White, Bold true } // 白色加粗字 };Fill见 ConditionalFormatFill.cs只需一个 ARGB 颜色Font见 ConditionalFormatFont.cs支持加粗、斜体、删除线、下划线和颜色Border见 ConditionalFormatBorder.cs可分别设置上、下、左、右边框第 3 步把规则挂到单元格区域上核心入口是Worksheet的AddConditionalFormatRule方法接受一个单元格引用字符串和一条规则。创建规则通过静态工厂方法完成// 重复值规则命中重复的单元格变红底白字 var duplicateRule ConditionalFormatRule.DuplicateValues().WithStyle(style); worksheet.AddConditionalFormatRule(A1:A100, duplicateRule);对应的 API 源码入口在 DuplicateValuesFormatRuleBuilder.cs 和 Worksheet.cs工厂方法DuplicateValues()定义在 ConditionalFormatRule.cs 中。唯一值规则和重复值完全对称唯一值规则与重复值规则一一对应适合用来把正常的行标绿、把重复的行标红var uniqueStyle new ConditionalFormatStyle { Fill new() { Color Color.LightGreen } }; var uniqueRule ConditionalFormatRule.UniqueValues().WithStyle(uniqueStyle); worksheet.AddConditionalFormatRule(A1:A100, uniqueRule);实现细节见 UniqueValuesFormatRuleBuilder.cs。完整示例订单查重报表把两条规则组合起来就能得到一份绿色 唯一订单号红色 重复订单号的报表using var spreadsheet new Spreadsheet(new MemoryStream()); var sheet spreadsheet.AddWorksheet(); // 写入 100 行订单号后 var red new ConditionalFormatStyle { Fill new() { Color Color.Red } }; var green new ConditionalFormatStyle { Fill new() { Color Color.LightGreen } }; sheet.AddConditionalFormatRule(A2:A101, ConditionalFormatRule.DuplicateValues().WithStyle(red)); sheet.AddConditionalFormatRule(A2:A101, ConditionalFormatRule.UniqueValues().WithStyle(green)); await spreadsheet.WriteAsync();两个规则作用于同一区域也完全没问题规则管理由内部的 ConditionalFormatRulesManager.cs 负责去重和分配优先级。使用小贴士注意点说明单元格引用支持单个单元格A1和区域A1:B10与 Excel 引用写法一致规则数量上限Excel 对每个区域的条件格式数量有限制超出时Try系列方法会返回false生成前请先测试数字格式Style.Format可顺带控制命中单元格的数字/日期显示格式最长 255 字符只影响命中单元格未命中规则的单元格不受影响不会覆盖已有静态样式完整的 XML 输出行为可以通过测试用例验证例如 SpreadsheetConditionalFormattingTests.cs 覆盖了多规则、默认样式等场景条件格式写入 sheet 的 XML 逻辑在 ConditionalFormattingXml.cs。总结用ConditionalFormatRule.DuplicateValues()/UniqueValues()两个工厂方法创建规则用WithStyle(new ConditionalFormatStyle { ... })定义填充、字体、边框用AddConditionalFormatRule(A1:A100, rule)一次挂载Excel 打开即生效掌握这套 API你生成的每一份 XLSX 文件都能自带智能高亮能力让数据问题一眼可见 。【免费下载链接】spreadcheetahSpreadCheetah is a high-performance .NET library for generating spreadsheet (Microsoft Excel XLSX) files.项目地址: https://gitcode.com/gh_mirrors/sp/spreadcheetah创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考