如何确定PivotTable.DataBodyRange中的单元格是否为“总计”

时间:2019-06-19 16:32:58

标签: c# excel pivot-table

我用代码(C#)创建一个数据透视表,其中包含列的总计。如何确定PivotTable.DataBodyRange中的一个单元格是否为总数?我像这样遍历单元格:

foreach (Excel.Range cell in pvtTable.DataBodyRange) { //I need to determine if "cell" is a total or not. }

查看图片。总计的单元格以黄色突出显示。

enter image description here

1 个答案:

答案 0 :(得分:0)

您需要这个:

  • 通过遍历PivotTable.PivotRowAxis.PivotLines
  • 遍历行
  • 每个PivotLine.Position等价于PivotTable.DataBodyRange内的行号 (不是Excel行号),从1开始。
  • 如果PivotLine.LineType = xlPivotLineSubtotal,则您在所需行中

结果可能是这样的:

foreach (Excel.PivotLine pl in pvtTable.PivotRowAxis.PivotLines)
{
    if (pl.LineType == Excel.XlPivotLineType.xlPivotLineSubtotal)
    {
        foreach (Excel.Range cell in pvtTable.DataBodyRange.Rows[pl.Position].Cells){
            System.Diagnostics.Debug.WriteLine(cell);
        }
    }
}