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 の新しいバージョンで同じことを達成するにはどうすればよいですか?

4

1 に答える 1

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 サポート フォーラムで詳細な調査を行ってください。

注: 私は 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");
于 2016-01-19T15:38:14.120 に答える