Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
.xls-Dateien) als auch von modernen benannten oder benutzerdefinierten Pivot-Tabellenstilen (vorgesehen für .xlsx-, .xlsm- und .xlsb-Dateien). Welche API Sie aufrufen sollten, hängt vom Dateiformat ab, in dem die Arbeitsmappe gespeichert wird, nicht vom Format, aus dem sie geladen wurde.
Aspose.Cells stellt zwei parallele Stil-APIs für Pivot-Tabellen bereit. Die Entscheidung zwischen ihnen wird durch das Dateiformat bestimmt, in dem Sie die Arbeitsmappe speichern, nicht durch das Format, aus dem Sie sie lesen. Eine aus einer .xls-Datei geladene Arbeitsmappe kann als .xlsx neu gespeichert werden, und in diesem Fall gilt die moderne Stil-API anstelle der Legacy-API.
PivotTable.PivotTableStyleType wählt einen der integrierten benannten Stile aus (helle und dunkle Designs, einschließlich der in Excel 2017 hinzugefügten Stile). Diese Voreinstellungen sind schreibgeschützt.PivotTable.PivotTableStyleName wählt einen benutzerdefinierten Stil aus, den Sie selbst über Worksheets.TableStyles.AddPivotTableStyle(...) definieren. Benutzerdefinierte Stile sind erforderlich, wenn Sie Farben, Rahmen oder Schriftarten ändern möchten, die über die Voreinstellungen hinausgehen.
Darüber hinaus ist PivotTable.FormatAll(Style) eine Verknüpfung, die ein einzelnes Style-Objekt auf jede Zelle der Pivot-Tabelle anwendet und alle Einstellungen überschreibt, die über eine der oben genannten Stilnamen-APIs vorgenommen wurden. Dies ist nützlich, wenn ein einheitliches Erscheinungsbild unabhängig vom zugrunde liegenden Design erforderlich ist.PivotTable.AutoFormatType akzeptiert einen Wert aus der Enumeration Aspose.Cells.Pivot.PivotTableAutoFormatType. Die verfügbaren Werte sind Report1 bis Report10, Classic und Table1 bis Table10.
Das folgende Beispiel lädt eine neue Arbeitsmappe, füllt die Fruit/Year/Amount-Beispieldaten, fügt eine Pivot-Tabelle hinzu, wendet PivotTableAutoFormatType.Report5 an und speichert das Ergebnis als .xls.
Report1 bis Report10, Table1 bis Table10) wurden im klassischen Excel für eindimensionale Pivot-Tabellen mit nur Zeilenfeldern und Werten entwickelt – sie verfügen über keine integrierte Gestaltung für Spaltenfeldüberschriften. Wenn Ihre Pivot-Tabelle Spaltenfelder benötigt, verwenden Sie stattdessen die modernen PivotTableStyleType-Voreinstellungen aus Szenario 2, die für das zweidimensionale Layout ausgelegt sind, das modernes Excel verwendet.
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main() {
Aspose::Cells::Startup();
// Erstellen Sie eine neue Arbeitsmappe
Workbook workbook;
// Holen Sie das erste Arbeitsblatt
Worksheet sheet = workbook.GetWorksheets().Get(0);
// Füllen Sie die Quelldaten mit einer Kopfzeile (Frucht, Jahr, Betrag)
// und 9 Datenzeilen, die Trauben, Heidelbeeren, Kiwi, Kirsche über 2020 und 2021 abdecken
sheet.GetCells().Get(0, 0).PutValue(u"Fruit");
sheet.GetCells().Get(0, 1).PutValue(u"Year");
sheet.GetCells().Get(0, 2).PutValue(u"Amount");
sheet.GetCells().Get(1, 0).PutValue(u"grape");
sheet.GetCells().Get(1, 1).PutValue(2020);
sheet.GetCells().Get(1, 2).PutValue(50);
sheet.GetCells().Get(2, 0).PutValue(u"blueberry");
sheet.GetCells().Get(2, 1).PutValue(2020);
sheet.GetCells().Get(2, 2).PutValue(30);
sheet.GetCells().Get(3, 0).PutValue(u"kiwi");
sheet.GetCells().Get(3, 1).PutValue(2020);
sheet.GetCells().Get(3, 2).PutValue(25);
sheet.GetCells().Get(4, 0).PutValue(u"cherry");
sheet.GetCells().Get(4, 1).PutValue(2020);
sheet.GetCells().Get(4, 2).PutValue(40);
sheet.GetCells().Get(5, 0).PutValue(u"grape");
sheet.GetCells().Get(5, 1).PutValue(2021);
sheet.GetCells().Get(5, 2).PutValue(60);
sheet.GetCells().Get(6, 0).PutValue(u"blueberry");
sheet.GetCells().Get(6, 1).PutValue(2021);
sheet.GetCells().Get(6, 2).PutValue(35);
sheet.GetCells().Get(7, 0).PutValue(u"kiwi");
sheet.GetCells().Get(7, 1).PutValue(2021);
sheet.GetCells().Get(7, 2).PutValue(28);
sheet.GetCells().Get(8, 0).PutValue(u"cherry");
sheet.GetCells().Get(8, 1).PutValue(2021);
sheet.GetCells().Get(8, 2).PutValue(45);
sheet.GetCells().Get(9, 0).PutValue(u"grape");
sheet.GetCells().Get(9, 1).PutValue(2020);
sheet.GetCells().Get(9, 2).PutValue(45);
// Fügen Sie eine Pivot-Tabelle in der Zielzelle E3 hinzu, benannt als "Pivot1", unter Verwendung des Quellbereichs A1:C10
int pivotIndex = sheet.GetPivotTables().Add(u"A1:C10", u"E3", u"Pivot1");
PivotTable pivotTable = sheet.GetPivotTables().Get(pivotIndex);
// Felder zuweisen: Frucht -> Zeilen, Betrag -> Daten
pivotTable.AddFieldToArea(PivotFieldType::Row, u"Fruit");
pivotTable.AddFieldToArea(PivotFieldType::Data, u"Amount");
// Wenden Sie das alte XLS-Voreinstellungs-Autoformat "Report5" an
pivotTable.SetAutoFormatType(PivotTableAutoFormatType::Report5);
// Speichern Sie die Arbeitsmappe im alten .xls-Format
workbook.Save(u"output.xls");
Aspose::Cells::Cleanup();
return 0;
}
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main() {
Aspose::Cells::Startup();
Workbook workbook;
Worksheet worksheet = workbook.GetWorksheets().Get(0);
Cells cells = worksheet.GetCells();
cells.Get(u"A1").PutValue(u"Fruit");
cells.Get(u"B1").PutValue(u"Year");
cells.Get(u"C1").PutValue(u"Amount");
cells.Get(u"A2").PutValue(u"Grape");
cells.Get(u"B2").PutValue(2020);
cells.Get(u"C2").PutValue(100);
cells.Get(u"A3").PutValue(u"Blueberry");
cells.Get(u"B3").PutValue(2020);
cells.Get(u"C3").PutValue(150);
cells.Get(u"A4").PutValue(u"Kiwi");
cells.Get(u"B4").PutValue(2020);
cells.Get(u"C4").PutValue(200);
cells.Get(u"A5").PutValue(u"Cherry");
cells.Get(u"B5").PutValue(2020);
cells.Get(u"C5").PutValue(180);
cells.Get(u"A6").PutValue(u"Grape");
cells.Get(u"B6").PutValue(2021);
cells.Get(u"C6").PutValue(120);
cells.Get(u"A7").PutValue(u"Blueberry");
cells.Get(u"B7").PutValue(2021);
cells.Get(u"C7").PutValue(170);
cells.Get(u"A8").PutValue(u"Kiwi");
cells.Get(u"B8").PutValue(2021);
cells.Get(u"C8").PutValue(210);
cells.Get(u"A9").PutValue(u"Cherry");
cells.Get(u"B9").PutValue(2021);
cells.Get(u"C9").PutValue(190);
cells.Get(u"A10").PutValue(u"Grape");
cells.Get(u"B10").PutValue(2021);
cells.Get(u"C10").PutValue(130);
int pivotIndex = worksheet.GetPivotTables().Add(u"A1:C10", u"E3", u"Pivot1");
PivotTable pivotTable = worksheet.GetPivotTables().Get(pivotIndex);
pivotTable.AddFieldToArea(PivotFieldType::Row, u"Fruit");
pivotTable.AddFieldToArea(PivotFieldType::Column, u"Year");
pivotTable.AddFieldToArea(PivotFieldType::Data, u"Amount");
pivotTable.SetPivotTableStyleType(PivotTableStyleType::PivotTableStyleDark1);
workbook.Save(u"output.xlsx");
Aspose::Cells::Cleanup();
return 0;
}
Die integrierten Voreinstellungen können nicht geändert werden. Wenn Sie Farben, Rahmen oder Schriftarten überschreiben müssen, müssen Sie einen benutzerdefinierten Pivot-Stil definieren. Der Workflow umfasst drei Schritte:
TableStyles-Sammlung der Arbeitsmappe über Worksheets.TableStyles.AddPivotTableStyle(string name) einen benutzerdefinierten Stil hinzu. Dies gibt den Index des neu erstellten Stils zurück.WholeTable oder GrandTotalRow) über TableStyle.TableStyleElements.Add(TableStyleElementType) hinzufügen und jedem Element über TableStyleElement.SetElementStyle(Style) einen Style zuweisen.PivotTable.PivotTableStyleName auf den Namen des Stils setzen. Verwenden Sie hier nicht PivotTableStyleType, da diese Eigenschaft integrierte Voreinstellungen auswählt.PivotTableStyleName und PivotTableStyleType sind nicht austauschbar. Verwenden Sie PivotTableStyleType für integrierte Voreinstellungen und PivotTableStyleName für benutzerdefinierte Stile, die Sie über AddPivotTableStyle definiert haben. Das Setzen beider Werte ist harmlos, aber nur der Wert, der der beabsichtigten Quelle entspricht, wird gerendert.
Die verfügbaren TableStyleElementType-Werte umfassen WholeTable, FirstRow, LastRow, FirstColumn, LastColumn, GrandTotalRow, GrandTotalColumn, PageFieldLabels und PageFieldValues.
Das folgende Beispiel definiert einen benutzerdefinierten Pivot-Stil mit einem dünnen schwarzen Rahmen auf WholeTable und einer fetten roten Schriftart auf GrandTotalRow, wendet ihn dann über PivotTableStyleName an und speichert als .xlsx.
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main() {
Aspose::Cells::Startup();
Workbook workbook;
Worksheet worksheet = workbook.GetWorksheets().Get(0);
Cells cells = worksheet.GetCells();
// Quelldaten befüllen: Kopfzeile + 9 Datenzeilen (A1:C10)
cells.Get(u"A1").PutValue(u"Fruit");
cells.Get(u"B1").PutValue(u"Year");
cells.Get(u"C1").PutValue(u"Amount");
cells.Get(u"A2").PutValue(u"Grape");
cells.Get(u"B2").PutValue(2020);
cells.Get(u"C2").PutValue(100);
cells.Get(u"A3").PutValue(u"Blueberry");
cells.Get(u"B3").PutValue(2020);
cells.Get(u"C3").PutValue(200);
cells.Get(u"A4").PutValue(u"Kiwi");
cells.Get(u"B4").PutValue(2020);
cells.Get(u"C4").PutValue(300);
cells.Get(u"A5").PutValue(u"Cherry");
cells.Get(u"B5").PutValue(2020);
cells.Get(u"C5").PutValue(400);
cells.Get(u"A6").PutValue(u"Grape");
cells.Get(u"B6").PutValue(2021);
cells.Get(u"C6").PutValue(500);
cells.Get(u"A7").PutValue(u"Blueberry");
cells.Get(u"B7").PutValue(2021);
cells.Get(u"C7").PutValue(600);
cells.Get(u"A8").PutValue(u"Kiwi");
cells.Get(u"B8").PutValue(2021);
cells.Get(u"C8").PutValue(700);
cells.Get(u"A9").PutValue(u"Cherry");
cells.Get(u"B9").PutValue(2021);
cells.Get(u"C9").PutValue(800);
cells.Get(u"A10").PutValue(u"Grape");
cells.Get(u"B10").PutValue(2021);
cells.Get(u"C10").PutValue(900);
// Pivot-Tabelle aus A1:C10 hinzufügen, verankert bei E3, mit dem Namen "Pivot1"
int pivotIndex = worksheet.GetPivotTables().Add(u"A1:C10", u"E3", u"Pivot1");
PivotTable pivotTable = worksheet.GetPivotTables().Get(pivotIndex);
pivotTable.AddFieldToArea(PivotFieldType::Row, u"Fruit");
pivotTable.AddFieldToArea(PivotFieldType::Column, u"Year");
pivotTable.AddFieldToArea(PivotFieldType::Data, u"Amount");
// Schritt 1: Einen neuen benutzerdefinierten Pivot-Tabellenstil registrieren und dessen Index erfassen
int styleIndex = workbook.GetWorksheets().GetTableStyles().AddPivotTableStyle(u"CustomPivotStyle");
TableStyle tableStyle = workbook.GetWorksheets().GetTableStyles().Get(styleIndex);
// Schritt 2: Ein WholeTable-Element hinzufügen und dünne schwarze Rahmen auf allen vier Seiten anwenden
int wholeTableElementIndex = tableStyle.GetTableStyleElements().Add(TableStyleElementType::WholeTable);
TableStyleElement wholeTableElement = tableStyle.GetTableStyleElements().Get(wholeTableElementIndex);
Style wholeTableStyle = workbook.CreateStyle();
wholeTableStyle.GetBorders().Get(BorderType::TopBorder).SetLineStyle(CellBorderType::Thin);
wholeTableStyle.GetBorders().Get(BorderType::TopBorder).SetColor(Color::Black());
wholeTableStyle.GetBorders().Get(BorderType::BottomBorder).SetLineStyle(CellBorderType::Thin);
wholeTableStyle.GetBorders().Get(BorderType::BottomBorder).SetColor(Color::Black());
wholeTableStyle.GetBorders().Get(BorderType::LeftBorder).SetLineStyle(CellBorderType::Thin);
wholeTableStyle.GetBorders().Get(BorderType::LeftBorder).SetColor(Color::Black());
wholeTableStyle.GetBorders().Get(BorderType::RightBorder).SetLineStyle(CellBorderType::Thin);
wholeTableStyle.GetBorders().Get(BorderType::RightBorder).SetColor(Color::Black());
wholeTableElement.SetElementStyle(wholeTableStyle);
// Schritt 3: Ein GrandTotalRow-Element hinzufügen und eine fettrote Schrift anwenden
int grandTotalElementIndex = tableStyle.GetTableStyleElements().Add(TableStyleElementType::GrandTotalRow);
TableStyleElement grandTotalElement = tableStyle.GetTableStyleElements().Get(grandTotalElementIndex);
Style grandTotalStyle = workbook.CreateStyle();
grandTotalStyle.GetFont().SetIsBold(true);
grandTotalStyle.GetFont().SetColor(Color::Red());
grandTotalElement.SetElementStyle(grandTotalStyle);
// Schritt 4: Den benutzerdefinierten Stil nach Namen anwenden (NICHT nach PivotTableStyleType, der für eingebaute Voreinstellungen ist)
pivotTable.SetPivotTableStyleName(u"CustomPivotStyle");
workbook.Save(u"output.xlsx");
Aspose::Cells::Cleanup();
return 0;
}
PivotTable.FormatAll(Style) ist eine Verknüpfung, die ein einzelnes Style-Objekt auf jede Zelle der Pivot-Tabelle anwendet, einschließlich des Datenbereichs, der Zeilen- und Spaltenüberschriften sowie der Summen. Alles, was zuvor über PivotTableStyleType oder PivotTableStyleName festgelegt wurde, wird überschrieben.
FormatAll überschreibt sowohl PivotTableStyleType als auch PivotTableStyleName. Verwenden Sie es nur, wenn ein einheitliches, designunabhängiges Erscheinungsbild in der gesamten Pivot-Tabelle erforderlich ist.
Das folgende Beispiel erstellt einen Style mit gelber Vollfüllung, fetter dunkelblauer Schriftart und dünnen schwarzen Rahmen auf allen Seiten, wendet ihn dann mit FormatAll an und speichert als .xlsx.
#include "Aspose.Cells.h"
#include <string>
using namespace Aspose::Cells;
using namespace Aspose::Cells::Pivot;
int main() {
Aspose::Cells::Startup();
Workbook wb;
Worksheet worksheet = wb.GetWorksheets().Get(0);
// Kopfzeile
worksheet.GetCells().Get(u"A1").PutValue(u"Fruit");
worksheet.GetCells().Get(u"B1").PutValue(u"Year");
worksheet.GetCells().Get(u"C1").PutValue(u"Amount");
// Datenzeilen
worksheet.GetCells().Get(u"A2").PutValue(u"Grape");
worksheet.GetCells().Get(u"B2").PutValue(2020);
worksheet.GetCells().Get(u"C2").PutValue(5000);
worksheet.GetCells().Get(u"A3").PutValue(u"Blueberry");
worksheet.GetCells().Get(u"B3").PutValue(2020);
worksheet.GetCells().Get(u"C3").PutValue(3000);
worksheet.GetCells().Get(u"A4").PutValue(u"Kiwi");
worksheet.GetCells().Get(u"B4").PutValue(2020);
worksheet.GetCells().Get(u"C4").PutValue(4000);
worksheet.GetCells().Get(u"A5").PutValue(u"Cherry");
worksheet.GetCells().Get(u"B5").PutValue(2020);
worksheet.GetCells().Get(u"C5").PutValue(2000);
worksheet.GetCells().Get(u"A6").PutValue(u"Grape");
worksheet.GetCells().Get(u"B6").PutValue(2021);
worksheet.GetCells().Get(u"C6").PutValue(6000);
worksheet.GetCells().Get(u"A7").PutValue(u"Blueberry");
worksheet.GetCells().Get(u"B7").PutValue(2021);
worksheet.GetCells().Get(u"C7").PutValue(3500);
worksheet.GetCells().Get(u"A8").PutValue(u"Kiwi");
worksheet.GetCells().Get(u"B8").PutValue(2021);
worksheet.GetCells().Get(u"C8").PutValue(4500);
worksheet.GetCells().Get(u"A9").PutValue(u"Cherry");
worksheet.GetCells().Get(u"B9").PutValue(2021);
worksheet.GetCells().Get(u"C9").PutValue(2500);
worksheet.GetCells().Get(u"A10").PutValue(u"Grape");
worksheet.GetCells().Get(u"B10").PutValue(2021);
worksheet.GetCells().Get(u"C10").PutValue(5500);
// Pivot-Tabelle hinzufügen: Quellbereich A1:C10, Zielzelle E3, Name "Pivot1"
int pivotIndex = worksheet.GetPivotTables().Add(u"A1:C10", u"E3", u"Pivot1");
PivotTable pivotTable = worksheet.GetPivotTables().Get(pivotIndex);
// Pivot-Felder zuweisen
pivotTable.AddFieldToArea(PivotFieldType::Row, u"Fruit");
pivotTable.AddFieldToArea(PivotFieldType::Column, u"Year");
pivotTable.AddFieldToArea(PivotFieldType::Data, u"Amount");
// Einen Stil erstellen, der auf jede Zelle der Pivot-Tabelle angewendet wird
Style style = wb.CreateStyle();
style.SetForegroundColor(Color::Yellow());
style.SetPattern(BackgroundType::Solid);
style.GetFont().SetIsBold(true);
style.GetFont().SetColor(Color::DarkBlue());
style.GetBorders().Get(BorderType::TopBorder).SetLineStyle(CellBorderType::Thin);
style.GetBorders().Get(BorderType::TopBorder).SetColor(Color::Black());
style.GetBorders().Get(BorderType::BottomBorder).SetLineStyle(CellBorderType::Thin);
style.GetBorders().Get(BorderType::BottomBorder).SetColor(Color::Black());
style.GetBorders().Get(BorderType::LeftBorder).SetLineStyle(CellBorderType::Thin);
style.GetBorders().Get(BorderType::LeftBorder).SetColor(Color::Black());
style.GetBorders().Get(BorderType::RightBorder).SetLineStyle(CellBorderType::Thin);
style.GetBorders().Get(BorderType::RightBorder).SetColor(Color::Black());
// FormatAll anwenden
pivotTable.FormatAll(style);
// Arbeitsmappe speichern
wb.Save(u"output.xlsx");
Aspose::Cells::Cleanup();
return 0;
}
Die Wahl der Stil-API hängt vom Dateiformat ab, in dem Sie speichern. Verwenden Sie die folgende Tabelle als Kurzreferenz.
| Zieldateiformat | Zu verwendende API | Hinweise |
|---|---|---|
.xls (Legacy) |
PivotTable.AutoFormatType |
Werte aus Aspose.Cells.Pivot.PivotTableAutoFormatType (z. B. Report1–Report10, Classic, Table1–Table10). Beim Speichern in modernen Formaten ignoriert. |
.xlsx / .xlsm / .xlsb (modern, integrierter Stil) |
PivotTable.PivotTableStyleType |
Werte aus Aspose.Cells.PivotTableStyleType (helle/dunkle Designs, einschließlich der Ergänzungen aus Excel 2017). |
.xlsx / .xlsm / .xlsb (modern, benutzerdefinierter Stil) |
PivotTable.PivotTableStyleName + Worksheets.TableStyles.AddPivotTableStyle(...) |
Verwenden Sie dies, wenn die integrierten Voreinstellungen nicht ausreichen. Konfiguration über TableStyleElement.SetElementStyle(...). |
| Beliebiges Format (einheitliche Überschreibung) | PivotTable.FormatAll(Style) |
Verknüpfung, die jede andere Stileinstellung in der gesamten Pivot-Tabelle überschreibt. |
Im Zweifelsfall speichern Sie als .xlsx und verwenden Sie PivotTableStyleType für integrierte Designs oder PivotTableStyleName für benutzerdefinierte Designs. |
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.