如何提供基于Aspose.Cells数据透视表中另外两个值的计算值?

我将数据字段添加到数据透视表如下所示:

int TOTALQTY_COLUMN = 4; int TOTALPRICE_COLUMN = 5; . . . pivotTable.AddFieldToArea(Aspose.Cells.Pivot.PivotFieldType.Data, TOTALQTY_COLUMN); pivotTable.AddFieldToArea(Aspose.Cells.Pivot.PivotFieldType.Data, TOTALPRICE_COLUMN); 

或者,提供更多的上下文:

 Aspose.Cells.Pivot.PivotTableCollection pivotTables = pivotTableSheet.PivotTables; int colcount = COLUMNS_IN_DATA_SHEET; string lastColAsStr = ReportRunnerConstsAndUtils.GetExcelColumnName(colcount); int rowcount = sourceDataSheet.Cells.Rows.Count; string sourceDataArg = string.Format("sourceDataSheet!A1:{0}{1}", lastColAsStr, rowcount); int index = pivotTableSheet.PivotTables.Add(sourceDataArg, "A7", "PivotTableSheet"); Aspose.Cells.Pivot.PivotTable pivotTable = pivotTables[index]; pivotTable.AddFieldToArea(Aspose.Cells.Pivot.PivotFieldType.Row, DESCRIPTION_COLUMN); pivotTable.AddFieldToArea(Aspose.Cells.Pivot.PivotFieldType.Column, MONTHYR_COLUMN); pivotTable.AddFieldToArea(Aspose.Cells.Pivot.PivotFieldType.Data, TOTALQTY_COLUMN); pivotTable.AddFieldToArea(Aspose.Cells.Pivot.PivotFieldType.Data, TOTALPRICE_COLUMN); 

我需要另一个基于提供给这两个数据字段(来自源数据的TOTALQTY_COLUMN和TOTALPRICE_COLUMN列)的值的数据字段,具体来说是TotalPrice除以Total Qty。

这可能吗? 如果是这样,我该怎么做?

我可以为源数据表创build另一个列,其中包含这个值,只是引用它,但如果我可以通过使用一些计算“欺骗”来避免这样做,那么将是可取的。

我通过在我的源数据表中添加一个额外的列来解决这个问题,通过进行上述计算(TotalPrice / TotalQty)来填充:

 decimal avgPrice = 0.0M; if ((TotalPrice > 0.0M) && (Quantity > 0)) { avgPrice = TotalPrice/Quantity; } cell = sourceDataSheet.Cells[_lastRowAddedPivotTableData, 10]; cell.PutValue(Math.Round(avgPrice, 2)); 

…然后相应地引用新的数据源列:

 pivotTable.AddFieldToArea(Aspose.Cells.Pivot.PivotFieldType.Data, AVGPRICE_COLUMN);