在C#代码中使用数据透视表CalculatedField中的excel公式

时间:2017-05-02 13:18:52

标签: c# excel pivot-table excel-interop

我需要使用C#代码从excel文件生成数据透视表。在excel中,一些计算字段当前用于生成数据透视表,我需要将这些公式从excel转换为C#代码。 Excel公式:

=IF(CountA<>0;CountA/CountB;"0")

此公式用于数据透视表中使用的计算字段。这里,CountA和CountB列存在于excel中。

我尝试了以下代码,但它正在抛出interop exception

oPivotTable.AddDataField(oPivotTable.CalculatedFields()
    .Add("RateA", "= IF('CountA' != 0;'CountA' / 'CountB';0)", true),
  " RateA", Excel.XlConsolidationFunction.xlSum);

虽然一些简单的公式适用于calculatedFields。

1 个答案:

答案 0 :(得分:1)

请尝试以下代码:

pivotTable.CalculatedFields().Add("RateA","= IF('CountA' != 0,'CountA' / 'CountB',0)", true);
pivotTable.PivotFields("RateA").Orientation = MSExcel.XlPivotFieldOrientation.xlDataField;
pivotTable.PivotFields("Sum of " + drFormula["CustomList"].ToString()).Caption = " RateA";