Comment créer un tableau croisé dynamique dans Excel à l'aide de Node.js

Comment créer un tableau croisé dynamique dans Excel à l’aide de Node.js

La meilleure chose à propos des fichiers Excel est que vous pouvez apporter des modifications à n’importe quelle étape de visualisation ou de compilation des données. MS Excel est toujours en tête de liste pour organiser les données et effectuer des calculs complexes. Dans cet article de blog, nous allons apprendre à créer un tableau croisé dynamique dans Excel à l’aide de Node.js par programmation. De plus, nous verrons également comment créer un graphique croisé dynamique dans un fichier Excel basé sur un tableau croisé dynamique. Pour cela, nous allons installer cette API Excel JavaScript dans notre projet Node.js.

Les sections suivantes seront couvertes :

Installation de l’API JavaScript d’Excel

Pour installer cette puissante bibliothèque, vous pouvez soit télécharger le package API, soit l’installer en exécutant les commandes suivantes :

npm install java
npm install aspose.cells

Comment créer un tableau croisé dynamique dans Excel à l’aide de Node.js

Dans cette section, nous allons écrire les étapes suivantes et l’extrait de code qui crée un tableau croisé dynamique dans Excel par programmation.

Vous pouvez suivre les étapes suivantes et l’extrait de code pour convertir Excel en DataTable en C# :

  1. Instanciez un instant de la classe Workbook.
  2. Obtenez la référence de la première feuille de calcul en appelant la méthode get(index).
  3. Définissez le nom de la feuille de calcul en appelant la méthode setName.
  4. Appelez la méthode getCells pour obtenir la collection Cells.
  5. Get l’élément Cell au nom de cellule spécifié.
  6. Appelez cette méthode setValue pour définir la valeur de la plage.
  7. Obtenez l’objet Cell dans la plage en appelant la méthode get.
  8. Ajout d’une nouvelle feuille en appelant la méthode add.
  9. get l’élément Worksheet à l’index spécifié.
  10. Nommez la feuille en appelant la méthode setName.
  11. Ajoutez un tableau croisé dynamique à la feuille de calcul en appelant la méthode add.
  12. Affichez les totaux généraux en définissant la valeur de la méthode setRowGrand.
  13. Définissez la valeur de la méthode setColumnGrand qui indique si le rapport de tableau croisé dynamique affiche les totaux généraux pour les colonnes.
  14. Maintenant, définissez la valeur de la méthode setAutoFormat qui indique si le rapport de tableau croisé dynamique est automatiquement formaté.
  15. Définissez le type autoformat du tableau croisé dynamique en appelant la méthode setAutoFormatType.
  16. Appelez la méthode addFieldToArea pour faire glisser les premier, deuxième, troisième, quatrième et cinquième champs vers la zone de ligne.
  17. Définissez le format numérique du premier champ de données en appelant la méthode getDataFields.
  18. Enregistrement du fichier Excel en invoquant la méthode save.

Copiez et collez le code suivant dans votre fichier principal :

var aspose = aspose || {};
aspose.cells = require("aspose.cells");
// Instancier un instant de la classe Workbook 
var workbook = new aspose.cells.Workbook();
// Obtenir la référence de la première feuille de calcul en appelant la méthode get(index) 
var sheet = workbook.getWorksheets().get(0);
//  définissez le nom de la feuille de calcul en appelant la méthode setName. 
sheet.setName("Data");
// Appelez la méthode getCells pour obtenir la collection Cells. 
var cells = sheet.getCells();

// Obtient l'élément Cell au nom de cellule spécifié. 
var cell = cells.get("A1");
// Appelez cette méthode pour définir la valeur de la plage. 
cell.setValue("Employee");
// Obtenez l'objet Cell dans la plage en appelant la méthode get .
cell = cells.get("B1");
cell.setValue("Quarter");
cell = cells.get("C1");
cell.setValue("Product");
cell = cells.get("D1");
cell.setValue("Continent");
cell = cells.get("E1");
cell.setValue("Country");
cell = cells.get("F1");
cell.setValue("Sale");

cell = cells.get("A2");
cell.setValue("David");
cell = cells.get("A3");
cell.setValue("David");
cell = cells.get("A4");
cell.setValue("David");
cell = cells.get("A5");
cell.setValue("David");
cell = cells.get("A6");
cell.setValue("James");
cell = cells.get("A7");
cell.setValue("James");
cell = cells.get("A8");
cell.setValue("James");
cell = cells.get("A9");
cell.setValue("James");
cell = cells.get("A10");
cell.setValue("James");
cell = cells.get("A11");
cell.setValue("Miya");
cell = cells.get("A12");
cell.setValue("Miya");
cell = cells.get("A13");
cell.setValue("Miya");
cell = cells.get("A14");
cell.setValue("Miya");
cell = cells.get("A15");
cell.setValue("Miya");
cell = cells.get("A16");
cell.setValue("Miya");
cell = cells.get("A17");
cell.setValue("Miya");
cell = cells.get("A18");
cell.setValue("Elvis");
cell = cells.get("A19");
cell.setValue("Elvis");
cell = cells.get("A20");
cell.setValue("Elvis");
cell = cells.get("A21");
cell.setValue("Elvis");
cell = cells.get("A22");
cell.setValue("Elvis");
cell = cells.get("A23");
cell.setValue("Elvis");
cell = cells.get("A24");
cell.setValue("Elvis");
cell = cells.get("A25");
cell.setValue("Jean");
cell = cells.get("A26");
cell.setValue("Jean");
cell = cells.get("A27");
cell.setValue("Jean");
cell = cells.get("A28");
cell.setValue("Ada");
cell = cells.get("A29");
cell.setValue("Ada");
cell = cells.get("A30");
cell.setValue("Ada");

cell = cells.get("B2");
cell.setValue("1");
cell = cells.get("B3");
cell.setValue("2");
cell = cells.get("B4");
cell.setValue("3");
cell = cells.get("B5");
cell.setValue("4");
cell = cells.get("B6");
cell.setValue("1");
cell = cells.get("B7");
cell.setValue("2");
cell = cells.get("B8");
cell.setValue("3");
cell = cells.get("B9");
cell.setValue("4");
cell = cells.get("B10");
cell.setValue("4");
cell = cells.get("B11");
cell.setValue("1");
cell = cells.get("B12");
cell.setValue("1");
cell = cells.get("B13");
cell.setValue("2");
cell = cells.get("B14");
cell.setValue("2");
cell = cells.get("B15");
cell.setValue("3");
cell = cells.get("B16");
cell.setValue("4");
cell = cells.get("B17");
cell.setValue("4");
cell = cells.get("B18");
cell.setValue("1");
cell = cells.get("B19");
cell.setValue("1");
cell = cells.get("B20");
cell.setValue("2");
cell = cells.get("B21");
cell.setValue("3");
cell = cells.get("B22");
cell.setValue("3");
cell = cells.get("B23");
cell.setValue("4");
cell = cells.get("B24");
cell.setValue("4");
cell = cells.get("B25");
cell.setValue("1");
cell = cells.get("B26");
cell.setValue("2");
cell = cells.get("B27");
cell.setValue("3");
cell = cells.get("B28");
cell.setValue("1");
cell = cells.get("B29");
cell.setValue("2");
cell = cells.get("B30");
cell.setValue("3");

cell = cells.get("C2");
cell.setValue("Maxilaku");
cell = cells.get("C3");
cell.setValue("Maxilaku");
cell = cells.get("C4");
cell.setValue("Chai");
cell = cells.get("C5");
cell.setValue("Maxilaku");
cell = cells.get("C6");
cell.setValue("Chang");
cell = cells.get("C7");
cell.setValue("Chang");
cell = cells.get("C8");
cell.setValue("Chang");
cell = cells.get("C9");
cell.setValue("Chang");
cell = cells.get("C10");
cell.setValue("Chang");
cell = cells.get("C11");
cell.setValue("Geitost");
cell = cells.get("C12");
cell.setValue("Chai");
cell = cells.get("C13");
cell.setValue("Geitost");
cell = cells.get("C14");
cell.setValue("Geitost");
cell = cells.get("C15");
cell.setValue("Maxilaku");
cell = cells.get("C16");
cell.setValue("Geitost");
cell = cells.get("C17");
cell.setValue("Geitost");
cell = cells.get("C18");
cell.setValue("Ikuru");
cell = cells.get("C19");
cell.setValue("Ikuru");
cell = cells.get("C20");
cell.setValue("Ikuru");
cell = cells.get("C21");
cell.setValue("Ikuru");
cell = cells.get("C22");
cell.setValue("Ipoh Coffee");
cell = cells.get("C23");
cell.setValue("Ipoh Coffee");
cell = cells.get("C24");
cell.setValue("Ipoh Coffee");
cell = cells.get("C25");
cell.setValue("Chocolade");
cell = cells.get("C26");
cell.setValue("Chocolade");
cell = cells.get("C27");
cell.setValue("Chocolade");
cell = cells.get("C28");
cell.setValue("Chocolade");
cell = cells.get("C29");
cell.setValue("Chocolade");
cell = cells.get("C30");
cell.setValue("Chocolade");

cell = cells.get("D2");
cell.setValue("Asia");
cell = cells.get("D3");
cell.setValue("Asia");
cell = cells.get("D4");
cell.setValue("Asia");
cell = cells.get("D5");
cell.setValue("Asia");
cell = cells.get("D6");
cell.setValue("Europe");
cell = cells.get("D7");
cell.setValue("Europe");
cell = cells.get("D8");
cell.setValue("Europe");
cell = cells.get("D9");
cell.setValue("Europe");
cell = cells.get("D10");
cell.setValue("Europe");
cell = cells.get("D11");
cell.setValue("America");
cell = cells.get("D12");
cell.setValue("America");
cell = cells.get("D13");
cell.setValue("America");
cell = cells.get("D14");
cell.setValue("America");
cell = cells.get("D15");
cell.setValue("America");
cell = cells.get("D16");
cell.setValue("America");
cell = cells.get("D17");
cell.setValue("America");
cell = cells.get("D18");
cell.setValue("Europe");
cell = cells.get("D19");
cell.setValue("Europe");
cell = cells.get("D20");
cell.setValue("Europe");
cell = cells.get("D21");
cell.setValue("Oceania");
cell = cells.get("D22");
cell.setValue("Oceania");
cell = cells.get("D23");
cell.setValue("Oceania");
cell = cells.get("D24");
cell.setValue("Oceania");
cell = cells.get("D25");
cell.setValue("Africa");
cell = cells.get("D26");
cell.setValue("Africa");
cell = cells.get("D27");
cell.setValue("Africa");
cell = cells.get("D28");
cell.setValue("Africa");
cell = cells.get("D29");
cell.setValue("Africa");
cell = cells.get("D30");
cell.setValue("Africa");

cell = cells.get("E2");
cell.setValue("China");
cell = cells.get("E3");
cell.setValue("India");
cell = cells.get("E4");
cell.setValue("Korea");
cell = cells.get("E5");
cell.setValue("India");
cell = cells.get("E6");
cell.setValue("France");
cell = cells.get("E7");
cell.setValue("France");
cell = cells.get("E8");
cell.setValue("Germany");
cell = cells.get("E9");
cell.setValue("Italy");
cell = cells.get("E10");
cell.setValue("France");
cell = cells.get("E11");
cell.setValue("U.S.");
cell = cells.get("E12");
cell.setValue("U.S.");
cell = cells.get("E13");
cell.setValue("Brazil");
cell = cells.get("E14");
cell.setValue("U.S.");
cell = cells.get("E15");
cell.setValue("U.S.");
cell = cells.get("E16");
cell.setValue("Canada");
cell = cells.get("E17");
cell.setValue("U.S.");
cell = cells.get("E18");
cell.setValue("Italy");
cell = cells.get("E19");
cell.setValue("France");
cell = cells.get("E20");
cell.setValue("Italy");
cell = cells.get("E21");
cell.setValue("New Zealand");
cell = cells.get("E22");
cell.setValue("Australia");
cell = cells.get("E23");
cell.setValue("Australia");
cell = cells.get("E24");
cell.setValue("New Zealand");
cell = cells.get("E25");
cell.setValue("S.Africa");
cell = cells.get("E26");
cell.setValue("S.Africa");
cell = cells.get("E27");
cell.setValue("S.Africa");
cell = cells.get("E28");
cell.setValue("Egypt");
cell = cells.get("E29");
cell.setValue("Egypt");
cell = cells.get("E30");
cell.setValue("Egypt");

cell = cells.get("F2");
cell.setValue(2000);
cell = cells.get("F3");
cell.setValue(500);
cell = cells.get("F4");
cell.setValue(1200);
cell = cells.get("F5");
cell.setValue(1500);
cell = cells.get("F6");
cell.setValue(500);
cell = cells.get("F7");
cell.setValue(1500);
cell = cells.get("F8");
cell.setValue(800);
cell = cells.get("F9");
cell.setValue(900);
cell = cells.get("F10");
cell.setValue(500);
cell = cells.get("F11");
cell.setValue(1600);
cell = cells.get("F12");
cell.setValue(600);
cell = cells.get("F13");
cell.setValue(2000);
cell = cells.get("F14");
cell.setValue(500);
cell = cells.get("F15");
cell.setValue(900);
cell = cells.get("F16");
cell.setValue(700);
cell = cells.get("F17");
cell.setValue(1400);
cell = cells.get("F18");
cell.setValue(1350);
cell = cells.get("F19");
cell.setValue(300);
cell = cells.get("F20");
cell.setValue(500);
cell = cells.get("F21");
cell.setValue(1000);
cell = cells.get("F22");
cell.setValue(1500);
cell = cells.get("F23");
cell.setValue(1500);
cell = cells.get("F24");
cell.setValue(1600);
cell = cells.get("F25");
cell.setValue(1000);
cell = cells.get("F26");
cell.setValue(1200);
cell = cells.get("F27");
cell.setValue(1300);
cell = cells.get("F28");
cell.setValue(1500);
cell = cells.get("F29");
cell.setValue(1400);
cell = cells.get("F30");
cell.setValue(1000);


// Ajouter une nouvelle feuille en appelant la méthode add 
var sheetIndex = workbook.getWorksheets().add();
// récupère l'élément Worksheet à l'index spécifié. 
var sheet2 = workbook.getWorksheets().get(sheetIndex);
// Nommez la feuille en appelant la méthode setName 
sheet2.setName("PivotTable");
// Obtenir la collection de tableaux croisés dynamiques dans la feuille
var pivotTables = sheet2.getPivotTables();
// Ajouter un tableau croisé dynamique à la feuille de calcul en appelant la méthode add 
var index = pivotTables.add("=Data!A1:F30", "B3", "PivotTable1");
// obtenir l'instance du tableau croisé dynamique nouvellement ajouté
var pivotTable = pivotTables.get(index);
// Afficher les totaux généraux en définissant la valeur de la méthode setRowGrand 
pivotTable.setRowGrand(true);
// Définissez la valeur de la méthode setColumnGrand qui indique si le rapport de tableau croisé dynamique affiche les totaux généraux pour les colonnes.
pivotTable.setColumnGrand(true);
// Définissez la valeur de la méthode setAutoFormat qui indique si le rapport de tableau croisé dynamique est automatiquement formaté. 
pivotTable.setAutoFormat(true);
// Définissez le type de format automatique du tableau croisé dynamique en appelant la méthode setAutoFormatType 
pivotTable.setAutoFormatType(aspose.cells.PivotTableAutoFormatType.REPORT_6);
// Appelez la méthode addFieldToArea pour faire glisser les premier, deuxième, troisième, quatrième et cinquième champs vers la zone de ligne. 
pivotTable.addFieldToArea(aspose.cells.PivotFieldType.ROW, 0);
pivotTable.addFieldToArea(aspose.cells.PivotFieldType.ROW, 2);
pivotTable.addFieldToArea(aspose.cells.PivotFieldType.ROW, 1);
pivotTable.addFieldToArea(aspose.cells.PivotFieldType.COLUMN, 3);
pivotTable.addFieldToArea(aspose.cells.PivotFieldType.DATA, 5);
// Définissez le format numérique du premier champ de données en appelant la méthode getDataFields 
pivotTable.getDataFields().get(0).setNumber(7);
// Enregistrement du fichier Excel en appelant la méthode save 
workbook.save(  "pivotTable_test.xls");

Vous pouvez voir la sortie dans l’image ci-dessous :

Créer un tableau croisé dynamique dans Excel à l'aide de Node.js

Comment créer un graphique croisé dynamique dans Excel par programmation

Maintenant, nous allons implémenter la fonctionnalité pour créer un graphique croisé dynamique basé sur le tableau croisé dynamique généré à l’aide de cette API JavaScript Excel.

Vous pouvez suivre les étapes et l’extrait de code mentionnés ci-dessous :

  1. Instanciez une instance de la classe Workbook.
  2. Appelez la méthode add pour add une feuille de calcul à la collection.
  3. get l’élément Worksheet à l’index spécifié.
  4. Nommez la feuille en appelant la méthode setName.
  5. Ajoutez un histogramme en appelant la méthode add.
  6. get l’élément Chart à l’index spécifié.
  7. Appelez la méthode setPivotSource pour définir la source de données du graphique croisé dynamique.
  8. Appelez la méthode setHidePivotFieldButtons pour masquer les boutons de champ du graphique croisé dynamique uniquement lorsque le graphique est PivotChart.
  9. save le fichier Excel.

Copiez et collez le code suivant dans votre fichier principal :

var aspose = aspose || {};
aspose.cells = require("aspose.cells");
// Créer une instance de la classe Workbook 
var workbook = new aspose.cells.Workbook("pivotTable_test.xls");
// Appelez la méthode add pour ajouter une feuille de calcul à la collection.
var sheetIndex = workbook.getWorksheets().add(aspose.cells.SheetType.CHART);
// récupère l'élément Worksheet à l'index spécifié. 
var sheet3 = workbook.getWorksheets().get(sheetIndex);
// Nommez la feuille en appelant la méthode setName 
sheet3.setName("PivotChart");
// Ajouter un histogramme en appelant la méthode add 
var chartIndex = sheet3.getCharts().add(aspose.cells.ChartType.COLUMN, 0, 5, 28, 16);
// récupère l'élément Chart à l'index spécifié. 
var chart = sheet3.getCharts().get(chartIndex);
// Appelez la méthode setPivotSource pour définir la source de données du graphique croisé dynamique 
chart.setPivotSource("PivotTable!PivotTable1");
// Appelez la méthode setHidePivotFieldButtons pour masquer les boutons de champ du graphique croisé dynamique uniquement lorsque le graphique est PivotChart. 
chart.setHidePivotFieldButtons(false);
// Enregistrez le fichier Excel 
workbook.save( "pivotChart_test.xls");

La sortie est illustrée dans l’image ci-dessous :

Comment créer un graphique croisé dynamique dans Excel par programmation

Obtenez une licence gratuite

Vous pouvez bénéficier d’une licence temporaire gratuite pour essayer l’API sans limitation d’évaluation.

Résumé

Comme vous avez parcouru cette API JavaScript Excel au niveau de l’entreprise. De plus, vous avez appris à créer un tableau croisé dynamique dans Excel à l’aide de Node.js par programme et nous avons également implémenté la fonctionnalité pour créer un graphique croisé dynamique. De plus, vous pouvez visiter la documentation pour connaître les autres fonctionnalités.

De plus, nous vous suggérons de suivre notre Guide de démarrage.

Enfin, conholdate.com écrit constamment de nouveaux articles de blog. Par conséquent, veuillez rester en contact pour les dernières mises à jour.

poser une question

Vous pouvez nous faire part de vos questions ou requêtes sur notre forum.

FAQ

Comment créer un tableau croisé dynamique dans Excel et le modifier ?

Vous pouvez installer cette API JavaScript Excel pour créer un tableau croisé dynamique dans Excel par programme. De plus, vous pouvez visiter ce lien pour obtenir les étapes et l’extrait de code.

Voir également