Cómo crear una tabla dinámica en Excel usando Node.js

Cómo crear una tabla dinámica en Excel usando Node.js

Lo mejor de los archivos Excel es que puede realizar modificaciones en cualquier etapa de visualización o compilación de datos. MS Excel todavía se encuentra en la lista superior para organizar datos y realizar cálculos complejos. En esta publicación de blog, aprenderemos cómo crear una tabla dinámica en Excel usando Node.js mediante programación. Además, también veremos cómo hacer un gráfico dinámico en un archivo de Excel basado en una tabla dinámica. Para ello, instalaremos esta API JavaScript de Excel en nuestro proyecto Node.js.

Se cubrirán las siguientes secciones:

Instalación de la API de JavaScript de Excel

Para instalar esta poderosa biblioteca, puede descargar el paquete API o instalarlo ejecutando los siguientes comandos:

npm install java
npm install aspose.cells

Cómo crear una tabla dinámica en Excel usando Node.js

En esta sección, escribiremos los siguientes pasos y el fragmento de código que crea una tabla dinámica en Excel mediante programación.

Puede seguir los siguientes pasos y el fragmento de código para convertir Excel a DataTable en C#:

  1. Instancia un instante de la clase Workbook.
  2. Obtenga la referencia de la primera hoja de cálculo llamando al método get(index).
  3. Establezca el nombre de la hoja de trabajo invocando el método setName.
  4. Llame al método getCells para obtener la colección Cells.
  5. Get el elemento Celda en el nombre de celda especificado.
  6. Llame a este método setValue para establecer el valor del rango.
  7. Obtenga el objeto Cell en el rango llamando al método get.
  8. Agregando una nueva hoja llamando al método add.
  9. get el elemento Hoja de trabajo en el índice especificado.
  10. Asigne un nombre a la hoja llamando al método setName.
  11. Agregue una tabla dinámica a la hoja de trabajo invocando el método add.
  12. Muestre los totales generales configurando el valor del método setRowGrand.
  13. Establezca el valor del método setColumnGrand que indica si el informe de tabla dinámica muestra los totales generales de las columnas.
  14. Ahora, establezca el valor del método setAutoFormat que indica si el informe de tabla dinámica se formatea automáticamente.
  15. Establezca el tipo de tabla dinámica autoformato invocando el método setAutoFormatType.
  16. Invoque el método addFieldToArea para arrastrar el primer, segundo, tercer, cuarto y quinto campo al área de la fila.
  17. Configure el formato de número del primer campo de datos llamando al método getDataFields.
  18. Guardar el archivo de Excel invocando el método save.

Copie y pegue el siguiente código en su archivo principal:

var aspose = aspose || {};
aspose.cells = require("aspose.cells");
// Instanciar un instante de la clase Workbook 
var workbook = new aspose.cells.Workbook();
// Obtenga la referencia de la primera hoja de cálculo llamando al método get(index) 
var sheet = workbook.getWorksheets().get(0);
//  establezca el nombre de la hoja de cálculo invocando el método setName. 
sheet.setName("Data");
// Llame al método getCells para obtener la colección Cells. 
var cells = sheet.getCells();

// Obtiene el elemento Cell en el nombre de celda especificado. 
var cell = cells.get("A1");
// Llame a este método para establecer el valor del rango. 
cell.setValue("Employee");
// Obtenga el objeto Cell en el rango llamando al método 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);


// Agregar una nueva hoja llamando al método add 
var sheetIndex = workbook.getWorksheets().add();
// obtener el elemento de la hoja de trabajo en el índice especificado. 
var sheet2 = workbook.getWorksheets().get(sheetIndex);
// Asigne un nombre a la hoja llamando al método setName 
sheet2.setName("PivotTable");
// Obtener la colección de tablas dinámicas en la hoja
var pivotTables = sheet2.getPivotTables();
// Agregue una tabla dinámica a la hoja de trabajo invocando el método de agregar 
var index = pivotTables.add("=Data!A1:F30", "B3", "PivotTable1");
// obtener la instancia de la tabla dinámica recién agregada
var pivotTable = pivotTables.get(index);
// Muestre los totales generales configurando el valor del método setRowGrand 
pivotTable.setRowGrand(true);
// Establezca el valor del método setColumnGrand que indica si el informe de tabla dinámica muestra los totales generales de las columnas.
pivotTable.setColumnGrand(true);
// Establezca el valor del método setAutoFormat que indica si el informe de tabla dinámica se formatea automáticamente. 
pivotTable.setAutoFormat(true);
// Establezca el tipo de formato automático de la tabla dinámica invocando el método setAutoFormatType 
pivotTable.setAutoFormatType(aspose.cells.PivotTableAutoFormatType.REPORT_6);
// Invoque el método addFieldToArea para arrastrar los campos primero, segundo, tercero, cuarto y quinto al área de la fila. 
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);
// Establezca el formato de número del primer campo de datos llamando al método getDataFields 
pivotTable.getDataFields().get(0).setNumber(7);
// Guardar el archivo de Excel invocando el método de guardar 
workbook.save(  "pivotTable_test.xls");

Puede ver el resultado en la siguiente imagen:

Crear una tabla dinámica en Excel usando Node.js

Cómo hacer un gráfico dinámico en Excel mediante programación

Ahora, implementaremos la funcionalidad para crear un gráfico dinámico basado en la tabla dinámica generada utilizando esta API de JavaScript de Excel.

Puede seguir los pasos y el fragmento de código mencionado a continuación:

  1. Cree una instancia de la clase Libro de trabajo.
  2. Invoque el método add para agregar una hoja de trabajo a la colección.
  3. get el elemento Hoja de trabajo en el índice especificado.
  4. Asigne un nombre a la hoja invocando el método setName.
  5. Agrega un gráfico de columnas llamando al método add.
  6. get el elemento Gráfico en el índice especificado.
  7. Invoque el método setPivotSource para establecer la fuente de datos del gráfico dinámico.
  8. Llame al método setHidePivotFieldButtons para ocultar los botones de campo del gráfico dinámico solo cuando el gráfico es PivotChart.
  9. save el archivo de Excel.

Copie y pegue el siguiente código en su archivo principal:

var aspose = aspose || {};
aspose.cells = require("aspose.cells");
// Crear una instancia de la clase Workbook 
var workbook = new aspose.cells.Workbook("pivotTable_test.xls");
// Invoque el método add para agregar una hoja de trabajo a la colección.
var sheetIndex = workbook.getWorksheets().add(aspose.cells.SheetType.CHART);
// obtener el elemento de la hoja de trabajo en el índice especificado. 
var sheet3 = workbook.getWorksheets().get(sheetIndex);
// Asigne un nombre a la hoja invocando el método setName 
sheet3.setName("PivotChart");
// Agrega un gráfico de columnas llamando al método add 
var chartIndex = sheet3.getCharts().add(aspose.cells.ChartType.COLUMN, 0, 5, 28, 16);
// obtener el elemento Gráfico en el índice especificado. 
var chart = sheet3.getCharts().get(chartIndex);
// Invoque el método setPivotSource para establecer la fuente de datos del gráfico dinámico 
chart.setPivotSource("PivotTable!PivotTable1");
// Llame al método setHidePivotFieldButtons para ocultar los botones de campo del gráfico dinámico solo cuando el gráfico es PivotChart. 
chart.setHidePivotFieldButtons(false);
// Guarde el archivo de Excel 
workbook.save( "pivotChart_test.xls");

La salida se muestra en la siguiente imagen:

Cómo hacer un gráfico dinámico en Excel mediante programación

Obtenga una licencia gratis

Puede aprovechar una licencia temporal gratuita para probar la API sin limitaciones de evaluación.

Resumiendo

A medida que ha pasado por esta API JavaScript de Excel de nivel empresarial. Además, ha aprendido cómo crear una tabla dinámica en Excel usando Node.js mediante programación y también hemos implementado la funcionalidad para crear un gráfico dinámico. Además, puede visitar la documentación para conocer las otras características.

Además, le sugerimos que siga nuestra Guía de introducción.

Finalmente, conholdate.com constantemente escribe nuevas publicaciones de blog. Por lo tanto, manténgase en contacto para conocer las últimas actualizaciones.

Hacer una pregunta

Puede informarnos sobre sus preguntas o consultas en nuestro foro.

preguntas frecuentes

¿Cómo se crea una tabla dinámica en Excel y se edita?

Puede instalar este JavaScript de Excel API para crear una tabla dinámica en Excel mediante programación. Además, puede visitar este enlace para obtener los pasos y el fragmento de código.

Ver también