У меня была похожая проблема, единственный способ проверить, изменить или удалить условный формат ячейки или диапазона, который я нашел, - это посмотреть спецификации openxml. Условный формат хранится на листе с диапазоном под атрибутом sqref. Таким образом, вы можете отредактировать этот диапазон или добавить новый.
Например:
DIM p As New ExcelPackage(New FileInfo(ExlReportPath), True)
Dim ws As ExcelWorksheet = p.Workbook.Worksheets(ExlSheetName)
'--Найти узел «рабочий лист» (1 в моем случае), найти все дочерние узлы «условное форматирование» (от 5 до 11 в моем тесте)
Print.Debug(ws.WorksheetXml.ChildNodes(1).ChildNodes(5).Name)
' -- Вы получаете: условное форматирование
' --Теперь вы можете проверить диапазон:
Print.Debug(ws.WorksheetXml.ChildNodes(1).ChildNodes(5).Attributes("sqref").Value)
'--Покажет адрес ячейки, к которому применяется это форматирование, например: "D11:D15" '--вы можете изменить удаление или добавить новый диапазон, если хотите, ниже я добавляю F11:F15
ws.WorksheetXml.ChildNodes(1).ChildNodes(5).Attributes("sqref").Value="D11:D15 F11:F15"
' -- Вы также можете проверить само правило в InnerXml...
Если вам нужна дополнительная информация о разметке, погуглите Wouter van Vugt, «Open XML The markupобъяснение». Я нашел это полезным, и полный документ был онлайн (бесплатно).
Если найдете более простой способ, напишите.
С уважением
person
Ignacio
schedule
08.05.2014