恐怕您的要求不是很清楚,但是,我从您的代码段中了解到,您正在阅读应用于单元格的条件规则并尝试将其复制到另一个条件。如果我的理解是正确的,那么您可以使用 Cell.GetValidation 方法来检索特定单元格的验证规则,该单元格又包含 Formula1 和 Formula2 属性。请检查以下代码以更好地理解。
var book = new Workbook(dir + file);
var sheet = book.Worksheets[0];
var cell = sheet.Cells["A1"];
var validation = cell.GetValidation();
int index = sheet.ConditionalFormattings.Add();
var collection = sheet.ConditionalFormattings[index];
index = collection.AddCondition(FormatConditionType.Expression, OperatorType.None, validation.Formula1, validation.Formula2);
也就是说,如果您仍然遇到任何困难,或者我对您提出的场景的理解不正确,那么我恳请您分享您的代码的工作副本(使用没有问题的先前版本)以及支持电子表格在Aspose.Cells 支持论坛进行彻底调查。
注意:我在 Aspose 担任开发人员布道师。
@NSN,我已将代码修改如下。请在你身边试一试。
var book = new Workbook(dir + "book1.xlsx");
var sheet = book.Worksheets[0];
var cell = sheet.Cells["A1"];
FormatConditionCollection [] formatConditions = cell.GetFormatConditions();
var formatCondition = formatConditions[0];
int index = sheet.ConditionalFormattings.Add();
var collection = sheet.ConditionalFormattings[index];
index = collection.AddCondition(FormatConditionType.CellValue, OperatorType.Between, formatCondition[0].Formula1, formatCondition[0].Formula2);
collection.AddArea(CellArea.CreateCellArea("B1", "B2"));
collection[0].Style.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thick;
collection[0].Style.Borders[BorderType.BottomBorder].Color = Color.Red;
book.Save(dir + "output.xlsx");