Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
PivotField.Group() (regroupement automatique par type de données) et PivotField.Group(PivotFieldGroupOptions) (options de regroupement personnalisées).La surcharge sans paramètre PivotField.Group() inspecte le type de données du champ et le regroupe automatiquement. Un champ qui ne contient que des dates (et des valeurs vides) est regroupé par mois. Un champ qui ne contient que des nombres (et des valeurs vides) est regroupé en plages numériques à l’aide d’un intervalle automatique.
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace Aspose::Cells::Pivot;
int main() {
Aspose::Cells::Startup();
Workbook wb(u"sampleGroupPivotFieldsInPivotTable.xlsx");
Worksheet ws = wb.GetWorksheets().Get(1);
PivotTable pt = ws.GetPivotTables().Get(0);
PivotField field = pt.GetRowFields().Get(0);
field.Group();
pt.CalculateData();
wb.Save(u"outputAutoGroupPivotField.xlsx");
Aspose::Cells::Cleanup();
return 0;
}
La classe PivotFieldGroupOptions fournit une configuration de regroupement personnalisée. Pour les champs de date, définissez StartDate, EndDate et GroupTypes. Pour les champs numériques, définissez StartNumber, EndNumber et Interval. La propriété NewPivotField contrôle si le regroupement crée de nouveaux champs de tableau croisé dynamique à côté de l’original (voir la section Note à la fin de cet article).
L’exemple suivant regroupe le champ de ligne de date du tableau croisé dynamique d’exemple par mois et trimestres entre une date de début et une date de fin. Le code charge le fichier Excel d’exemple, effectue le regroupement, calcule les données du tableau croisé dynamique, puis enregistre le résultat regroupé. La capture d’écran montre l’effet : le champ de ligne de date est désormais regroupé par trimestres et mois.
Notez que l’ordre des valeurs dans options.GroupTypes est ignoré. Quel que soit l’ordre dans lequel les types de groupes sont listés, les champs regroupés sont toujours affichés de la plus grande période à la plus petite : années, trimestres, mois, jours, heures, minutes, secondes. Dans cet exemple, les mois sont listés avant les trimestres dans options.GroupTypes, pourtant les trimestres sont affichés comme niveau externe et les mois comme niveau interne.
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace Aspose::Cells::Pivot;
int main() {
Aspose::Cells::Startup();
// Charger le classeur d'exemple
Workbook wb(u"sampleGroupPivotFieldsInPivotTable.xlsx");
// Accéder à la deuxième feuille de calcul et à son tableau croisé dynamique
Worksheet ws = wb.GetWorksheets().Get(1);
PivotTable pt = ws.GetPivotTables().Get(0);
// Grouper le premier champ de ligne (un champ de date) par mois et trimestres
PivotFieldGroupOptions options;
Date startDate{2008, 1, 1, 0, 0, 0, 0};
Date endDate{2008, 9, 5, 0, 0, 0, 0};
options.SetStartDate(startDate);
options.SetEndDate(endDate);
// Définir les types de groupe : Mois et Trimestres
Vector<PivotGroupByType> groupTypes{ PivotGroupByType::Months, PivotGroupByType::Quarters };
options.SetGroupTypes(groupTypes);
// Appliquer le regroupement au premier champ de ligne
PivotField rowField = pt.GetRowFields().Get(0);
rowField.Group(options);
// Calculer les données du tableau croisé dynamique et enregistrer le fichier de sortie
pt.CalculateData();
wb.Save(u"outputGroupPivotFieldsInPivotTable.xlsx");
Aspose::Cells::Cleanup();
return 0;
}

FieldTwo du tableau croisé dynamique d’exemple est initialement un champ de données (valeur). Comme seuls les champs de ligne ou de colonne peuvent être regroupés, le code appelle d’abord PivotTable.AddFieldToArea(PivotFieldType.Row, "FieldTwo") pour déplacer FieldTwo vers la zone des lignes, actualise le tableau croisé dynamique, puis regroupe le champ numérique dans les plages 0-1, 2-3 et 4-5 à l’aide de StartNumber = 0, EndNumber = 5 et Interval = 2.
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace Aspose::Cells::Pivot;
int main() {
Aspose::Cells::Startup();
Workbook wb(u"sampleGroupPivotFieldsInPivotTable.xlsx");
Worksheet ws = wb.GetWorksheets().Get(1);
PivotTable pt = ws.GetPivotTables().Get(0);
pt.AddFieldToArea(PivotFieldType::Row, U16String("FieldTwo"));
pt.CalculateData();
PivotFieldGroupOptions options;
options.SetStartNumber(0);
options.SetEndNumber(5);
options.SetInterval(2);
pt.GetRowFields().Get(1).Group(options);
pt.CalculateData();
wb.Save(u"outputNumberGroupPivotField.xlsx");
Aspose::Cells::Cleanup();
return 0;
}
PivotField.GroupBy() sont obsolètes et supprimées de la surface d’API. PivotField.Group() et PivotField.Group(PivotFieldGroupOptions) sont les remplacements.PivotField.Group() suivent le même comportement qu’Excel. La propriété PivotFieldGroupOptions.NewPivotField existe pour la compatibilité avec les anciennes versions : elle vaut par défaut false pour le regroupement numérique et true pour le regroupement date-heure ; définissez-la sur false si vous souhaitez que le regroupement par dates remplace le champ d’origine du tableau croisé dynamique au lieu de créer de nouveaux champs.PivotFieldGroupOptions.Interval ne prend effet que pour le regroupement numérique et pour le regroupement par dates en jours (par exemple, le regroupement de dates en périodes de 7 jours) ; elle est ignorée lorsque les dates sont regroupées par mois, trimestres ou années.Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.