Aspose:Change 到 Aspose 中的 GetFormatConditions() 8.x

Aspose:Change to GetFormatConditions() in Aspose 8.x

FormatConditionCollection collection = localCell.GetFormatConditions();
......
Int32 conditionIndexN = clN.AddCondition(FormatConditionType.Expression, OperatorType.None, collection[i].Formula1, collection[i].Formula2);

我有使用 collection.Formula1 和 collection.Formula2 的代码。当我使用 aspose.cells 8.x 时,它们现在坏了。如何在新版本的 aspose 中实现相同的功能?

恐怕您的要求不是很清楚,但是,我从您的代码片段中了解到您正在阅读应用于单元格的条件规则并尝试将其复制到另一个条件。如果我的理解是正确的,那么您可以使用 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 support forum 中的支持电子表格以进行彻底调查。

注意:我在 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");