Aspose.Cells 在条件格式中使用数组(Ctrl+Shift+Enter 或 CSE)公式

Posted

技术标签:

【中文标题】Aspose.Cells 在条件格式中使用数组(Ctrl+Shift+Enter 或 CSE)公式【英文标题】:Aspose.Cells using array (Ctrl+Shift+Enter or CSE) formula in conditional formatting 【发布时间】: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)

(为方便起见,换行和空格。实际公式中不存在)

基本上它做了以下事情:

    通过两列A5='Raw data' Column A AND B5 = 'Raw data' Column B 在另一个工作表(原始数据)中查找一行 获取找到的行中的第 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 中的错误,还是我做错了什么?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于Aspose.Cells 在条件格式中使用数组(Ctrl+Shift+Enter 或 CSE)公式的主要内容,如果未能解决你的问题,请参考以下文章

如何设置Aspose.Cells单元格属性

使用Aspose.Cells导出Excel遇到的日期格式问题

Aspose.Cells的介绍

Aspose.cells模板导出使用记录

Aspose.Cells 首次使用,用到模版填充数据,合并单元格,换行

aspose.cells导出excel怎么显示为数字格式