我正在使用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'
列A和B5 = 'Raw data'
列B 当我将它直接放入单元格时( 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中的错误,还是我做错了什么?
答案 0 :(得分:-1)
好吧,Aspose.Cells可能不支持条件格式的数组公式。我们建议您将您的问题/要求发布到Aspose.Cells forums。使用您可以通过MS Excel手动创建的预期Excel文件向我们提供完整的详细信息和完整的示例代码。我们可以更好地帮助你。
我是Aspose的支持开发人员/传播者。