Dans cet article, vous apprendrez à créer un tableau croisé dynamique dans Excel et à trier ou masquer les données ou les éléments du tableau croisé dynamique par programme en C# à l’aide de Aspose.Cells for .NET - API .NET pour créer et manipuler des feuilles de calcul Excel sans nécessiter Microsoft Excel.

Tableaux croisés dynamiques dans Excel

Les choses sont passées au numérique et les solutions automatisées pour la génération et la manipulation de feuilles de calcul Excel sont largement utilisées. Les tableaux croisés dynamiques dans Excel sont largement utilisés pour résumer et analyser les données. Alors que le tri des données dans les tableaux croisés dynamiques est très utile pour l’inspection critique des énormes données dans les feuilles de calcul Excel. Le tri des données dans les tableaux croisés dynamiques peut être appliqué pour organiser les éléments par ordre alphabétique (AZ ou ZA) pour les valeurs de texte ou des valeurs les plus élevées aux valeurs les plus basses ou les plus basses aux valeurs les plus élevées en cas de nombres.

Basé sur l’importance des tableaux croisés dynamiques Excel, cet article vise à vous montrer comment :

  • créer un tableau croisé dynamique dans Excel,
  • trier le tableau croisé dynamique par valeurs de champ de ligne,
  • trier le tableau croisé dynamique par valeurs de champ de colonne,
  • et masquer les lignes du tableau croisé dynamique.

Pour la démonstration, l’exemple de feuille de calcul Excel suivant sera utilisé tout au long des exemples.

Créer un tableau croisé dynamique dans Excel en C#

Créer un tableau croisé dynamique dans Excel à l’aide de C#

Voyons d’abord comment créer un tableau croisé dynamique Excel en C# à l’aide de Aspose.Cells for .NET. Une fois que nous avons créé le tableau croisé dynamique, nous allons masquer les lignes et trier les données en fonction de sa colonne ou des champs de ligne. L’exemple de code suivant montre comment créer un tableau croisé dynamique Excel.

Workbook wb = new Workbook("SampleExcel.xlsx");

// Obtenir la référence de la feuille de travail nouvellement ajoutée
Worksheet sheet = wb.Worksheets[0];

PivotTableCollection pivotTables = sheet.PivotTables;

// tableau croisé dynamique source
// Ajouter un tableau croisé dynamique à la feuille de calcul
int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable2");

//Accéder à l'instance du tableau croisé dynamique nouvellement ajouté
PivotTable pivotTable = pivotTables[index];

// Affichage des totaux généraux pour les lignes.
pivotTable.RowGrand = false;
pivotTable.ColumnGrand = false;

// Faites glisser le premier champ vers la zone de ligne.
pivotTable.AddFieldToArea(PivotFieldType.Row, 1);
PivotField rowField = pivotTable.RowFields[0];
rowField.IsAutoSort = true;
rowField.IsAscendSort = true;

// Faites glisser le deuxième champ vers la zone de la colonne.
pivotTable.AddFieldToArea(PivotFieldType.Column, 0);
PivotField colField = pivotTable.ColumnFields[0];
colField.NumberFormat = "dd/mm/yyyy";
colField.IsAutoSort = true;
colField.IsAscendSort = true;

// Faites glisser le troisième champ vers la zone de données.
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);

pivotTable.RefreshData();
pivotTable.CalculateData();
// end of tableau croisé dynamique source

//Enregistrement du fichier Excel
wb.Save("output.xlsx");

Production

Créer un tableau croisé dynamique dans Excel dans ASP.NET

Trier le tableau croisé dynamique par valeurs de champ de ligne en C#

Dans la section précédente, nous avons simplement créé le tableau croisé dynamique en utilisant les données de la feuille de calcul Excel. Maintenant, nous allons créer un autre tableau croisé dynamique et appliquer le tri sur les données. L’exemple de code suivant crée et trie le tableau croisé dynamique par valeurs de champ de ligne “SeaFood”.

Workbook wb = new Workbook("SampleExcel.xlsx");

// Obtention de la référence de la feuille de calcul Excel.
Worksheet sheet = wb.Worksheets[0];

PivotTableCollection pivotTables = sheet.PivotTables;

// Ajout d'un tableau croisé dynamique à la feuille de calcul Excel.
int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable2");

// Accéder à l'instance du tableau croisé dynamique nouvellement ajouté.
PivotTable pivotTable = pivotTables[index];

// Affichage des totaux généraux pour les lignes.
pivotTable.RowGrand = false;
pivotTable.ColumnGrand = false;

// Faites glisser le premier champ vers la zone de ligne.
pivotTable.AddFieldToArea(PivotFieldType.Row, 1);
PivotField rowField = pivotTable.RowFields[0];
rowField.IsAutoSort = true;
rowField.IsAscendSort = true;

// Faites glisser le deuxième champ vers la zone de la colonne.
pivotTable.AddFieldToArea(PivotFieldType.Column, 0);
PivotField colField = pivotTable.ColumnFields[0];
colField.NumberFormat = "dd/mm/yyyy";
colField.IsAutoSort = true;
colField.IsAscendSort = true;
colField.AutoSortField = 0;

// Faites glisser le troisième champ vers la zone de données.
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);

pivotTable.RefreshData();
pivotTable.CalculateData();

// Enregistrement du fichier Excel.
wb.Save("output.xlsx");

Production

Créer et trier un tableau croisé dynamique dans Excel

Trier le tableau croisé dynamique par valeurs de champ de colonne en C#

Vous pouvez également trier les données d’un tableau croisé dynamique en fonction des valeurs des champs de colonne. L’exemple de code C# suivant applique le tri sur les valeurs de champ de la colonne “28/07/2000”.

Workbook wb = new Workbook("SampleExcel.xlsx");

// Obtention de la référence de la feuille de calcul Excel.
Worksheet sheet = wb.Worksheets[0];

PivotTableCollection pivotTables = sheet.PivotTables;

// Ajout d'un tableau croisé dynamique à la feuille de calcul Excel.
int index = pivotTables.Add("=Sheet1!A1:C10", "E3", "PivotTable2");

// Accéder à l'instance du tableau croisé dynamique nouvellement ajouté.
PivotTable pivotTable = pivotTables[index];

// Affichage des totaux généraux pour les lignes.
pivotTable.RowGrand = false;
pivotTable.ColumnGrand = false;

// Faites glisser le premier champ vers la zone de ligne.
pivotTable.AddFieldToArea(PivotFieldType.Row, 1);
PivotField rowField = pivotTable.RowFields[0];
rowField.IsAutoSort = true;
rowField.IsAscendSort = true;
colField.AutoSortField = 0;

// Faites glisser le deuxième champ vers la zone de la colonne.
pivotTable.AddFieldToArea(PivotFieldType.Column, 0);
PivotField colField = pivotTable.ColumnFields[0];
colField.NumberFormat = "dd/mm/yyyy";
colField.IsAutoSort = true;
colField.IsAscendSort = true;

// Faites glisser le troisième champ vers la zone de données.
pivotTable.AddFieldToArea(PivotFieldType.Data, 2);

pivotTable.RefreshData();
pivotTable.CalculateData();

// Enregistrement du fichier Excel.
wb.Save("output.xlsx");

Production

Masquer les données dans le tableau croisé dynamique dans Excel

Masquer les lignes du tableau croisé dynamique en C#

Vous pouvez masquer les lignes du tableau croisé dynamique Excel en fonction de certaines conditions que vous souhaitez appliquer. L’exemple de code suivant montre comment masquer des lignes particulières dans le tableau croisé dynamique à l’aide de C#.

Workbook workbook = new Workbook("output.xlsx");
Worksheet worksheet = workbook.Worksheets[0];

var pivotTable = worksheet.PivotTables[0];
var dataBodyRange = pivotTable.DataBodyRange;
int currentRow = 1;
int rowsUsed = dataBodyRange.EndRow;

// Trier les valeurs par ordre décroissant
PivotField field = pivotTable.RowFields[0];
field.IsAutoSort = true;
field.IsAscendSort = false;
field.AutoSortField = 0;

pivotTable.RefreshData();
pivotTable.CalculateData();

// Masquer les lignes avec une valeur inférieure à 15
while (currentRow < rowsUsed)
{
	Cell cell = worksheet.Cells[currentRow, 2];
	double score = Convert.ToDouble(cell.Value);
	if (score < 15)
	{
		worksheet.Cells.HideRow(currentRow);
	}
	currentRow++;
}

pivotTable.RefreshData();
pivotTable.CalculateData();

// Enregistrement du fichier Excel
workbook.Save("PivotTableHideAndSort.xlsx");

Consultez la documentation de Aspose.Cells for .NET pour plus de détails sur l’utilisation des tableaux croisés dynamiques dans Excel à l’aide de C# dans n’importe quelle application basée sur .NET. Contactez-nous sur notre forum en cas de questions ou de requêtes.

Conclusion

Dans cet article, vous avez appris à utiliser des tableaux croisés dynamiques dans des fichiers Excel à l’aide de C#. En particulier, vous avez vu comment créer des tableaux croisés dynamiques et trier ou masquer des données dans des tableaux croisés dynamiques dans Excel à l’aide de C#. Vous pouvez en savoir plus sur Aspose.Cells for .NET en utilisant documentation.

Voir également