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#
- Établir l’environnement pour ajouter Aspose.Cells for .NET à partir du gestionnaire de packages NuGet pour créer un tableau croisé dynamique
- Créer ou charger un workbook existant contenant des données pour le tableau croisé dynamique
- Accédez à la cible worksheet où le tableau croisé dynamique doit être ajouté
- Créer un tableau croisé dynamique et obtenir son instance pour un traitement ultérieur
- Configurez le nouveau tableau croisé dynamique et ajoutez différents champs à la colonne, à la ligne et à la zone de données
- 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#.