Aspose.Cells在条件格式

时间:2017-02-17 12:11:31

标签: c# excel excel-formula conditional-formatting aspose

我正在使用Aspose.Cells .NET,并尝试在条件格式表达式中使用数组公式( Ctrl + Shift + Enter 或CSE)。数组公式如下所示:

=VALUE
    (INDEX('Raw data'!$A$5:$AE$32; 
           MATCH(1;(A5='Raw data'!$A$5:$A$32)*(B5='Raw data'!$B$5:$B$32);0);
           3)
    )
<> VALUE(C5)

(为方便起见,换行符和空格。实际公式中没有它们)

基本上它执行以下操作:

  1. 在另一个工作表中查找一行(原始数据)两列A5='Raw data'列A和B5 = 'Raw data'列B
  2. 获取找到的行中的第3列
  3. 检查其值是否等于C5单元格
  4. 当我将它直接放入单元格时( Ctrl + Shift + Enter ) 当我使用Ms Excel 2010手动创建条件格式(使用它)时,它也有效。

    但是当我尝试通过Aspose.Cells应用它时会抛出异常

      

    无效的公式

    // Add an empty conditional formatting
    int index = worksheet.ConditionalFormattings.Add();
    FormatConditionCollection fcs = ws.ConditionalFormattings[index];
    
    //Add area for conditional formatting
    fcs.AddArea(cellArea);
    
    var condition = String.Format(formulaTemplate, initialDataRange, okpoCellName, initialDataOkpoColumnRange, initialDataColumn, currentCellName);
    
    // Throws here 
    // condition = "=VALUE(INDEX('Raw data'!$A$5:$AE$32;MATCH(1;(A5='Raw data'!$A$5:$A$32)*(B5='Raw data'!$B$5:$B$32);0);3)) <> VALUE(C5)"
    int conditionIndex = fcs.AddCondition(FormatConditionType.Expression, OperatorType.None, condition, "");
    

    我怀疑当我添加条件时,Aspose会尝试将其评估为通常的公式(不是数组公式)并且失败。有没有办法禁用/推迟此评估? 这是Aspose中的错误,还是我做错了什么?

1 个答案:

答案 0 :(得分:-1)

好吧,Aspose.Cells可能不支持条件格式的数组公式。我们建议您将您的问题/要求发布到Aspose.Cells forums。使用您可以通过MS Excel手动创建的预期Excel文件向我们提供完整的详细信息和完整的示例代码。我们可以更好地帮助你。

我是Aspose的支持开发人员/传播者。