c# - EPPlus 和 C#:如何在范围上应用条件格式而不是附加到每个单元格
问题描述
我需要对范围应用条件格式,而不是将条件格式附加到每个单元格。我现在正在做的方式是缓慢的过程。我有一个巨大的单元格,我在 for 循环中附加了条件格式,这对我来说越来越慢。所以我正在寻找在范围内做同样事情的方法,这可能会减少一些迭代。
FileInfo existingFile = new FileInfo("Test.xlsx");
using (var package = new ExcelPackage(existingFile))
{
ExcelWorkbook workBook = package.Workbook;
var currentWorksheet = workBook.Worksheets.First();
currentWorksheet.Workbook.CalcMode = ExcelCalcMode.Automatic;
for (int i = 1; i < 12; i++)
{
ExcelAddress _formatRangeAddress = new ExcelAddress("$A$" + i);
int j = 11 - i;
string _statement = "=$A$" + i + ">$A$" + j;
var f = currentWorksheet.ConditionalFormatting.AddExpression(_formatRangeAddress);
f.Style.Fill.BackgroundColor.Color = Color.Green;
f.Formula = _statement;
_statement = " =$A$" + i + "<$A$" + j;
f = currentWorksheet.ConditionalFormatting.AddExpression(_formatRangeAddress);
f.Style.Fill.BackgroundColor.Color = Color.Red;
f.Formula = _statement;
}
package.Save();
}
希望很清楚我在做什么。我正在将每个单元格的值与特定单元格进行比较。如果值小于,则颜色为红色,否则颜色为绿色。
我的问题是我在 for 循环中迭代以将条件格式附加到每个变慢的单元格。当我必须在许多单元格中进行迭代时,for 循环将需要一些时间。所以我想知道我可以对范围做同样的事情,而不是为每个单元格附加条件格式。
请告知如何对范围执行相同操作,但范围中的每个单元格值都将与特定单元格值进行比较。谢谢
解决方案
推荐阅读
- html - 如何重新创建水平显示细节的页脚
- visual-studio - 如何使 Visual Studio 工作目录与构建的可执行文件的目录相同?
- r - R:扩展组内所有可能组合的网格并在所有对中应用函数
- javascript - 将文件中的所有常量导出到 index.ts 中,然后将这些常量导出为对象的键?
- java - android studio 无法解析符号
- makefile - Make 删除文件为中间文件
- python - 如果某个列值不包含特定字符串,则删除 pandas 行
- python - 使用自己的词典进行情绪分析
- python - SQL Server 或 Pandas 排名/按分区编号窗口函数
- java - 摇篮 4 Java 11