如何使用 Epplus 从工作表模板复制或扩展条件格式
How to Copy or Extend Condition Formating from Worksheet Template using Epplus
我有 .xmls
模板文件,在第一列(A 列)中,我有一些示例数据和指定的条件格式(A1 和 A3 的规则)。
我正在使用此模板并动态添加新列(可能有数百列)。
每次我复制第一列的范围并将其插入到新列中。格式和样式会自动复制,没关系。
但是,我想做的也是复制第一列中指定的条件格式。 (复制 B1 和 B3 的规则或扩展这些列的现有规则)
有什么办法,怎么办:
从第一列复制条件格式规则并将其粘贴到第 n 列?
或者有什么办法,如何扩展现有条件格式规则的地址?
foreach (var condition in ws.ConditionFormating)
{
condition.Address.Adress += " B1 B3";
}
您可以设置条件格式的范围:
condition.Address = new ExcelAddress("C4:C8,G1:G3");
用逗号分隔范围。由于你有不止一种格式,你必须区分格式规则——最简单的方法是按它们的优先级:
if(condition.Priority == 2)
condition.Address = new ExcelAddress("C4:C8,G1:G3");
当然,通过范围来区分它们会更合乎逻辑,但恐怕没有 EPPlus 函数来测试两个范围是否相交。但是您可以测试 Address.Address
是否以 A1
或 A3
...
开头
注意:如果你按照上面的设置阅读Adress.Address
,你会得到"C4:C8 G1:G3"
(Space, 多于一个范围的地址不是逗号)。所以如果你想使用它你必须做 condition.Address.Address.Replace(' ',',')
。这在 EPPlus 中似乎不一致。
我有 .xmls
模板文件,在第一列(A 列)中,我有一些示例数据和指定的条件格式(A1 和 A3 的规则)。
我正在使用此模板并动态添加新列(可能有数百列)。
每次我复制第一列的范围并将其插入到新列中。格式和样式会自动复制,没关系。
但是,我想做的也是复制第一列中指定的条件格式。 (复制 B1 和 B3 的规则或扩展这些列的现有规则)
有什么办法,怎么办:
从第一列复制条件格式规则并将其粘贴到第 n 列?
或者有什么办法,如何扩展现有条件格式规则的地址?
foreach (var condition in ws.ConditionFormating)
{
condition.Address.Adress += " B1 B3";
}
您可以设置条件格式的范围:
condition.Address = new ExcelAddress("C4:C8,G1:G3");
用逗号分隔范围。由于你有不止一种格式,你必须区分格式规则——最简单的方法是按它们的优先级:
if(condition.Priority == 2)
condition.Address = new ExcelAddress("C4:C8,G1:G3");
当然,通过范围来区分它们会更合乎逻辑,但恐怕没有 EPPlus 函数来测试两个范围是否相交。但是您可以测试 Address.Address
是否以 A1
或 A3
...
注意:如果你按照上面的设置阅读Adress.Address
,你会得到"C4:C8 G1:G3"
(Space, 多于一个范围的地址不是逗号)。所以如果你想使用它你必须做 condition.Address.Address.Replace(' ',',')
。这在 EPPlus 中似乎不一致。