【问题标题】:Aspose.Cells using array (Ctrl+Shift+Enter or CSE) formula in conditional formattingAspose.Cells 在条件格式中使用数组(Ctrl+Shift+Enter 或 CSE)公式
【发布时间】:2017-02-17 12:11:30
【问题描述】:

我正在使用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' Column A AND B5 = 'Raw data' Column B 在另一个工作表(原始数据)中查找一行
  2. 获取找到的行中的第 3 列
  3. 检查其值是否不等于 C5 单元格

当我将它直接放入单元格时它可以工作(使用 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 中的错误,还是我做错了什么?

【问题讨论】:

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


    【解决方案1】:

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

    我在 Aspose 担任支持开发人员/宣传员。

    【讨论】:

      猜你喜欢
      • 2023-03-07
      • 1970-01-01
      • 2018-12-19
      • 1970-01-01
      • 1970-01-01
      • 2017-11-04
      • 2012-11-24
      • 2022-01-14
      • 1970-01-01
      相关资源
      最近更新 更多