exportTableSummaryRow method

  1. @protected
void exportTableSummaryRow(
  1. SfDataGrid dataGrid,
  2. GridTableSummaryRow summaryRow,
  3. PdfGrid pdfGrid
)

Export table summary row to the Excel.

Implementation

@protected
void exportTableSummaryRow(
    SfDataGrid dataGrid, GridTableSummaryRow summaryRow, PdfGrid pdfGrid) {
  final PdfGridRow tableSummaryRow = pdfGrid.rows.add();
  // Resets the column index when creating a new row.
  _columnIndex = 0;
  if (summaryRow.showSummaryInRow) {
    _exportTableSummaryCell(
        pdfGrid: pdfGrid,
        dataGrid: dataGrid,
        summaryRow: summaryRow,
        columnSpan: columns.length,
        tableSummaryRow: tableSummaryRow);
  } else {
    int titleColumnCount = summaryRow.titleColumnSpan;
    if (titleColumnCount > 0) {
      // To consider the exclude columns in the `titleColumnCount`.
      titleColumnCount =
          getTitleColumnCount(summaryRow, dataGrid.columns, excludeColumns);

      if (titleColumnCount > 0) {
        _exportTableSummaryCell(
            pdfGrid: pdfGrid,
            dataGrid: dataGrid,
            summaryRow: summaryRow,
            columnSpan: titleColumnCount,
            tableSummaryRow: tableSummaryRow);
      }
    }

    for (final GridSummaryColumn summaryColumn in summaryRow.columns) {
      final GridColumn? column = dataGrid.columns.firstWhereOrNull(
          (GridColumn element) =>
              element.columnName == summaryColumn.columnName);
      final int summaryColumnIndex = getSummaryColumnIndex(
          dataGrid.columns, summaryColumn.columnName, excludeColumns);

      // Restricts if the column doesn't exist or its column index is less
      // than the `titleColumnCount`. because the `titleColumn` summary cell
      // has already exported.
      if (summaryColumnIndex < 0 || (summaryColumnIndex < titleColumnCount)) {
        continue;
      }

      _exportTableSummaryCell(
          column: column,
          pdfGrid: pdfGrid,
          dataGrid: dataGrid,
          summaryRow: summaryRow,
          startColumnIndex: summaryColumnIndex,
          summaryColumn: summaryColumn,
          tableSummaryRow: tableSummaryRow);
    }
  }
}