Форматирование сводной таблицы

Внешний вид сводной таблицы

Как создать сводную таблицу объясняет, как создать простую сводную таблицу. В этой статье описано, как настроить внешний вид сводной таблицы, устанавливая различные свойства:

  • Опции формата сводной таблицы
  • Опции формата полей сводной таблицы
  • Опции формата данных поля

Настройка параметров формата сводной таблицы

Класс PivotTable контролирует общую сводную таблицу и может быть отформатирован различными способами.

Установка типа автоформата

Microsoft Excel предлагает несколько различных предустановленных форматов отчетов. Aspose.Cells также поддерживает эти опции форматирования. Чтобы получить к ним доступ:

  1. Установите PivotTable.IsAutoFormat в true.
  2. Назначьте опцию форматирования из перечисления PivotTableAutoFormatType.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Load a template file
Workbook workbook = new Workbook(dataDir + "Book1.xls");
int pivotindex = 0;
// Get the first worksheet
Worksheet worksheet = workbook.Worksheets[0];
// Accessing the PivotTable
PivotTable pivotTable = worksheet.PivotTables[pivotindex];
// Setting the PivotTable report is automatically formatted
pivotTable.IsAutoFormat = true;
// Setting the PivotTable atuoformat type.
pivotTable.AutoFormatType = Aspose.Cells.Pivot.PivotTableAutoFormatType.Report5;
// Saving the Excel file
workbook.Save(dataDir + "output.xls");

Настройка параметров формата

Приведенный ниже пример кода показывает, как отформатировать сводную таблицу для отображения общих итогов для строк и столбцов, а также как установить порядок полей отчета. Он также показывает, как установить пользовательскую строку для пустых значений.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Load a template file
Workbook workbook = new Workbook(dataDir + "Book1.xls");
// Get the first worksheet
Worksheet worksheet = workbook.Worksheets[0];
int pivotindex = 0;
// Accessing the PivotTable
PivotTable pivotTable = worksheet.PivotTables[pivotindex];
// Setting the PivotTable report shows grand totals for rows.
pivotTable.RowGrand = true;
// Setting the PivotTable report shows grand totals for columns.
pivotTable.ColumnGrand = true;
// Setting the PivotTable report displays a custom string in cells that contain null values.
pivotTable.DisplayNullString = true;
pivotTable.NullString = "null";
// Setting the PivotTable report's layout
pivotTable.PageFieldOrder = PrintOrderType.DownThenOver;
// Saving the Excel file
workbook.Save(dataDir + "output.xls");

Форматирование внешнего вида вручную

Для форматирования отчета сводной таблицы внешний вид вручную, вместо использования предварительно заданных форматов отчетов используйте методы PivotTable.Format() и PivotTable.FormatAll(). Создайте объект стиля для желаемого форматирования, например:

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Load a template file
Workbook workbook = new Workbook(dataDir + "Book1.xls");
// Get the first worksheet
Worksheet worksheet = workbook.Worksheets[0];
var pivot = workbook.Worksheets[0].PivotTables[0];
pivot.PivotTableStyleType = PivotTableStyleType.PivotTableStyleDark1;
Style style = workbook.CreateStyle();
style.Font.Name = "Arial Black";
style.ForegroundColor = Color.Yellow;
style.Pattern = BackgroundType.Solid;
pivot.FormatAll(style);
// Saving the Excel file
workbook.Save(dataDir + "output.xls");

Настройка параметров формата поля сводной таблицы

Класс PivotField представляет собой поле в сводной таблице и может быть отформатировано несколькими способами. Приведенный ниже образец кода показывает, как:

  • Получить строковые поля.
  • Настроить итоги.
  • Настроить автосортировку.
  • Настроить автоотображение.

Настройка формата полей строки/столбца/страницы

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Load a template file
Workbook workbook = new Workbook(dataDir + "Book1.xls");
// Get the first worksheet
Worksheet worksheet = workbook.Worksheets[0];
int pivotindex = 0;
// Accessing the PivotTable
PivotTable pivotTable = worksheet.PivotTables[pivotindex];
// Setting the PivotTable report shows grand totals for rows.
pivotTable.RowGrand = true;
// Accessing the row fields.
Aspose.Cells.Pivot.PivotFieldCollection pivotFields = pivotTable.RowFields;
// Accessing the first row field in the row fields.
Aspose.Cells.Pivot.PivotField pivotField = pivotFields[0];
// Setting Subtotals.
pivotField.SetSubtotals(Aspose.Cells.Pivot.PivotFieldSubtotalType.Sum, true);
pivotField.SetSubtotals(Aspose.Cells.Pivot.PivotFieldSubtotalType.Count, true);
// Setting autosort options.
// Setting the field auto sort.
pivotField.IsAutoSort = true;
// Setting the field auto sort ascend.
pivotField.IsAscendSort = true;
// Setting the field auto sort using the field itself.
pivotField.AutoSortField = -5;
// Setting autoShow options.
// Setting the field auto show.
pivotField.IsAutoShow = true;
// Setting the field auto show ascend.
pivotField.IsAscendShow = false;
// Setting the auto show using field(data field).
pivotField.AutoShowField = 0;
// Saving the Excel file
workbook.Save(dataDir + "output.xls");

Настройка формата полей данных

Приведенный ниже образец кода показывает, как установить формат отображения и числовой формат для полей данных.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Load a template file
Workbook workbook = new Workbook(dataDir + "Book1.xls");
// Get the first worksheet
Worksheet worksheet = workbook.Worksheets[0];
int pivotindex = 0;
// Accessing the PivotTable
PivotTable pivotTable = worksheet.PivotTables[pivotindex];
// Accessing the data fields.
Aspose.Cells.Pivot.PivotFieldCollection pivotFields = pivotTable.DataFields;
// Accessing the first data field in the data fields.
Aspose.Cells.Pivot.PivotField pivotField = pivotFields[0];
// Setting data display format
pivotField.ShowValuesSetting.CalculationType = PivotFieldDataDisplayFormat.PercentageOf;
// Setting the base field.
pivotField.ShowValuesSetting.BaseFieldIndex = 1;
// Setting the base item.
pivotField.ShowValuesSetting.BaseItemPositionType = Aspose.Cells.Pivot.PivotItemPositionType.Next;
// Setting number format
pivotField.Number = 10;
// Saving the Excel file
workbook.Save(dataDir + "output.xls");

Очистка полей сводной таблицы

У класса PivotFieldCollection есть метод с именем Clear(), который позволяет очистить поля сводной таблицы. Используйте его, когда вам нужно очистить все поля сводной таблицы в областях, например страница, столбец, строка или данные. Приведенный ниже образец кода показывает, как очистить все поля сводной таблицы в области данных.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Load a template file
Workbook workbook = new Workbook(dataDir + "Book1.xls");
// Get the first worksheet
Worksheet sheet = workbook.Worksheets[0];
// Get the pivot tables in the sheet
PivotTableCollection pivotTables = sheet.PivotTables;
// Get the first PivotTable
PivotTable pivotTable = pivotTables[0];
// Clear all the data fields
pivotTable.DataFields.Clear();
// Add new data field
pivotTable.AddFieldToArea(PivotFieldType.Data, "Betrag Netto FW");
// Set the refresh data flag on
pivotTable.RefreshDataFlag = false;
// Refresh and calculate the pivot table data
pivotTable.RefreshData();
pivotTable.CalculateData();
// Saving the Excel file
workbook.Save(dataDir + "output.xls");