我有.xmls
模板文件,该文件位于第一列(A列)中,其中包含一些示例数据和指定的条件格式(A1和A3的规则)。
我正在使用此模板,并且动态地添加了新列(可能是几百列)。
每次我复制第一列的范围并将其插入新列中。格式和样式会自动复制,没关系。
但是,我还要复制第一列中指定的条件格式。 (复制B1和B3的规则或扩展这些列的现有规则)
有什么方法吗?
从第一列复制条件格式设置规则并将其粘贴到第n列?
或者有没有办法扩展现有条件格式设置规则的地址?
foreach (var condition in ws.ConditionFormating)
{
condition.Address.Adress += " B1 B3";
}
答案 0 :(得分:2)
您可以设置条件格式的范围:
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"
(空格,而不是逗号,如果地址大于一个范围)。因此,如果要使用此方法,则必须执行condition.Address.Address.Replace(' ',',')
。这似乎在EPPlus中是不一致的。