2016-01-19 65 views
0
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的新版本中實現相同效果?Aspose:更改爲Aspose 8.x中的GetFormatConditions()

回答

1

恐怕,您的要求並不太清楚,但是,我從您的代碼段中瞭解到,您正在閱讀應用於單元格的條件規則,並試圖將其複製爲另一個條件。如果我的理解正確,那麼您可以使用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擔任Developer Evangelist。


@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");