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导出Excel遇到的日期格式问题