Comment créer un tableau croisé dynamique dans Excel à l'aide de C#

Ce bref tutoriel explique comment créer un tableau croisé dynamique dans Excel à l’aide de C#. Pour créer un tableau croisé dynamique par programmation, un code C# et une description détaillée sont fournis de sorte qu’à la fin, vous obtiendrez un fichier XLSX (ou XLS) contenant un tableau croisé dynamique sans utiliser d’autre tiers -outil de fête. Il contient également des étapes qui guident l’ajout de différents champs à différentes zones du tableau croisé dynamique.

Étapes pour créer un tableau croisé dynamique en C#

  1. Établir l’environnement pour ajouter Aspose.Cells for .NET à partir du gestionnaire de packages NuGet pour créer un tableau croisé dynamique
  2. Créer ou charger un workbook existant contenant des données pour le tableau croisé dynamique
  3. Accédez à la cible worksheet où le tableau croisé dynamique doit être ajouté
  4. Créer un tableau croisé dynamique et obtenir son instance pour un traitement ultérieur
  5. Configurez le nouveau tableau croisé dynamique et ajoutez différents champs à la colonne, à la ligne et à la zone de données
  6. Enregistrez le classeur résultant contenant un tableau croisé dynamique

Après avoir établi l’environnement pour la génération de tableaux croisés dynamiques C# Excel, nous créons ici un nouveau classeur contenant les données codées en dur, mais vous pouvez charger un fichier Excel existant contenant également des données cibles. Dans les étapes suivantes, il décrit plus en détail le processus de création d’un tableau croisé dynamique puis sa configuration. Dans les étapes finales, différents champs sont ajoutés à différentes zones du tableau croisé dynamique, telles que la colonne, la ligne et les données.

Code pour créer un tableau croisé dynamique dans Excel à l’aide de C#

using System.IO;
using System.Text;
using Aspose.Cells;
namespace CreatePivotTableInExcelUsingCSharp
{
class Program
{
static void Main(string[] args) // Main function to set width of cell in CSharp
{
// Instantiate the license to remove trial version watermark in the output Excel file
Aspose.Cells.License licForCells= new Aspose.Cells.License();
licForCells.SetLicense("Aspose.Cells.lic");
// Set the hard-coded data. You may use an existing Excel file also if required
byte[] SrcDataByteArray = Encoding.ASCII.GetBytes(
$@"City,Product,Sales
Paris,Cream,2300
Paris,Lotion,1600
Tunis,Cream,900
Tunis,Lotion,1400
Tunis,Cream,3090
Tunis,Lotion,6000
Paris,Cream,4320" );
// Create a memory stream from the source data
MemoryStream dataStream = new MemoryStream( SrcDataByteArray );
// Create LoadOptions class object to load the comma-separated data given above
LoadOptions loadOptions = new LoadOptions(LoadFormat.Csv);
// Instantiate a workbook class object having above mentioned data
Workbook wbCSV = new Workbook(dataStream, loadOptions);
// Get access to the first worksheet in the collection
Worksheet targetSheet = wbCSV.Worksheets[0];
// Get collection of pivot tables in the target worksheet
Aspose.Cells.Pivot.PivotTableCollection pvTablesCollection = targetSheet.PivotTables;
// Get pivot table index after adding a new pivot table by provding source data range and destination cell
int iNewPivotTable = pvTablesCollection.Add("=A1:C8", "F3", "MyPivotTable");
// Get the instance of newly added pivot table for further processing
Aspose.Cells.Pivot.PivotTable newPivotTable = pvTablesCollection[iNewPivotTable];
// Hide the grand total for rows in the output Excel file
newPivotTable.RowGrand = false;
// Add the first field to the column area
newPivotTable.AddFieldToArea(Aspose.Cells.Pivot.PivotFieldType.Column, 0);
// Add the second field to the row area
newPivotTable.AddFieldToArea(Aspose.Cells.Pivot.PivotFieldType.Row, 1);
// Add the third field to the data area
newPivotTable.AddFieldToArea(Aspose.Cells.Pivot.PivotFieldType.Data, 2);
// Saving the output Excel file with pivot table
wbCSV.Save("OutputPivotTable.xlsx");
System.Console.WriteLine("Done");
}
}
}

Cet exemple de code montre comment créer un tableau croisé dynamique en C# en fournissant la plage de données et la cellule de destination où le tableau croisé dynamique doit être placé avec le nom du tableau croisé dynamique. La classe pivotTable a une fonction AddFieldToArea() qui est utilisée pour faire glisser différents champs vers différentes zones en utilisant pivotFieldType comme Column, Row ou Data avec le numéro de champ dans la plage de données sélectionnée. Vous pouvez également utiliser une autre page pivotFieldType si nécessaire.

Dans cet article, nous avons appris à ajouter un tableau croisé dynamique Excel en C#. Si vous souhaitez apprendre à exporter les données d’une liste vers Excel, consultez l’article sur comment exporter des données de liste vers Excel en C#.

 Français