Как определить, является ли ячейка в PivotTable.DataBodyRange общей суммой - PullRequest
1 голос
/ 19 июня 2019

Я создаю сводную таблицу в коде (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 голосов
/ 19 июня 2019

Вам нужно это:

  • Цикл по строкам с циклом по 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);
        }
    }
}
...