Como criar uma tabela dinâmica no Excel usando Node.js

Como criar uma tabela dinâmica no Excel usando Node.js

A melhor coisa sobre os arquivos Excel é que você pode fazer modificações em qualquer estágio de visualização ou compilação de dados. O MS Excel ainda está no topo da lista para organizar dados e realizar cálculos complexos. Nesta postagem do blog, aprenderemos como criar uma tabela dinâmica no Excel usando o Node.js programaticamente. Além disso, também veremos como fazer um gráfico dinâmico no arquivo Excel com base em uma tabela dinâmica. Para isso, instalaremos este Excel JavaScript API em nosso projeto Node.js.

As seguintes seções serão cobertas:

Instalação da API JavaScript do Excel

Para instalar esta poderosa biblioteca, você pode baixar o pacote da API ou instalá-lo executando os seguintes comandos:

npm install java
npm install aspose.cells

Como criar uma tabela dinâmica no Excel usando Node.js

Nesta seção, escreveremos as etapas a seguir e o trecho de código que cria uma tabela dinâmica no Excel programaticamente.

Você pode seguir as seguintes etapas e o trecho de código para converter Excel em DataTable em C#:

  1. Instancie uma instância da classe Workbook.
  2. Obtenha a referência da primeira planilha chamando o método get(index).
  3. Defina o nome da planilha invocando o método setName.
  4. Chame o método getCells para obter a coleção Cells.
  5. Get o elemento Cell no nome de célula especificado.
  6. Chame este método setValue para definir o valor do intervalo.
  7. Obtenha o objeto Cell no intervalo chamando o método get.
  8. Adicionando uma nova planilha chamando o método add.
  9. get o elemento Worksheet no índice especificado.
  10. Nomeie a planilha chamando o método setName.
  11. Adicione uma Tabela Dinâmica à planilha invocando o método add.
  12. Mostre os totais gerais definindo o valor do método setRowGrand.
  13. Defina o valor do método setColumnGrand que indica se o relatório de tabela dinâmica mostra os totais gerais das colunas.
  14. Agora, defina o valor do método setAutoFormat que indica se o relatório de tabela dinâmica é formatado automaticamente.
  15. Defina o tipo de tabela dinâmica autoformat invocando o método setAutoFormatType.
  16. Invoque o método addFieldToArea para arrastar o primeiro, segundo, terceiro, quarto e quinto campos para a área de linha.
  17. Defina o formato do número do primeiro campo de dados chamando o método getDataFields.
  18. Salvando o arquivo Excel invocando o método save.

Copie e cole o seguinte código em seu arquivo principal:

var aspose = aspose || {};
aspose.cells = require("aspose.cells");
// Instanciar um instante da classe Workbook 
var workbook = new aspose.cells.Workbook();
// Obtenha a referência da primeira planilha chamando o método get(index) 
var sheet = workbook.getWorksheets().get(0);
//  defina o nome da planilha invocando o método setName. 
sheet.setName("Data");
// Chame o método getCells para obter a coleção Cells. 
var cells = sheet.getCells();

// Obtenha o elemento Cell no nome da célula especificado. 
var cell = cells.get("A1");
// Chame esse método para definir o valor do intervalo. 
cell.setValue("Employee");
// Obtenha o objeto Cell no intervalo chamando o 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);


// Adicionando uma nova planilha chamando o método add 
var sheetIndex = workbook.getWorksheets().add();
// obtenha o elemento Worksheet no índice especificado. 
var sheet2 = workbook.getWorksheets().get(sheetIndex);
// Nomeie a planilha chamando o método setName 
sheet2.setName("PivotTable");
// Obtendo a coleção de tabelas dinâmicas na planilha
var pivotTables = sheet2.getPivotTables();
// Adicione uma tabela dinâmica à planilha invocando o método add 
var index = pivotTables.add("=Data!A1:F30", "B3", "PivotTable1");
// obter a instância da tabela dinâmica recém-adicionada
var pivotTable = pivotTables.get(index);
// Mostre os totais gerais definindo o valor do método setRowGrand 
pivotTable.setRowGrand(true);
// Defina o valor do método setColumnGrand que indica se o relatório de tabela dinâmica mostra totais gerais para colunas.
pivotTable.setColumnGrand(true);
// Defina o valor do método setAutoFormat que indica se o relatório de tabela dinâmica é formatado automaticamente. 
pivotTable.setAutoFormat(true);
// Defina o tipo de formatação automática de tabela dinâmica invocando o método setAutoFormatType 
pivotTable.setAutoFormatType(aspose.cells.PivotTableAutoFormatType.REPORT_6);
// Invoque o método addFieldToArea para arrastar o primeiro, segundo, terceiro, quarto e quinto campos para a área da linha. 
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);
// Defina o formato do número do primeiro campo de dados chamando o método getDataFields 
pivotTable.getDataFields().get(0).setNumber(7);
// Salvando o arquivo do Excel invocando o método save 
workbook.save(  "pivotTable_test.xls");

Você pode ver a saída na imagem abaixo:

Criar uma tabela dinâmica no Excel usando Node.js

Como fazer um gráfico dinâmico no Excel programaticamente

Agora, implementaremos a funcionalidade para criar um gráfico dinâmico com base na tabela dinâmica gerada usando esta API JavaScript do Excel.

Você pode seguir as etapas e o trecho de código mencionado abaixo:

  1. Crie uma instância da classe Workbook.
  2. Invoque o método add para add uma planilha à coleção.
  3. get o elemento Worksheet no índice especificado.
  4. Nomeie a planilha invocando o método setName.
  5. Adicione um gráfico de colunas chamando o método add.
  6. get o elemento Chart no índice especificado.
  7. Invoque o método setPivotSource para definir a fonte de dados do gráfico dinâmico.
  8. Chame o método setHidePivotFieldButtons para ocultar os botões de campo do gráfico dinâmico somente quando o gráfico for PivotChart.
  9. save o arquivo Excel.

Copie e cole o seguinte código em seu arquivo principal:

var aspose = aspose || {};
aspose.cells = require("aspose.cells");
// Criar uma instância da classe Workbook 
var workbook = new aspose.cells.Workbook("pivotTable_test.xls");
// Invoque o método add para adicionar uma planilha à coleção.
var sheetIndex = workbook.getWorksheets().add(aspose.cells.SheetType.CHART);
// obtenha o elemento Worksheet no índice especificado. 
var sheet3 = workbook.getWorksheets().get(sheetIndex);
// Nomeie a planilha invocando o método setName 
sheet3.setName("PivotChart");
// Adicione um gráfico de colunas chamando o método add 
var chartIndex = sheet3.getCharts().add(aspose.cells.ChartType.COLUMN, 0, 5, 28, 16);
// obtenha o elemento Chart no índice especificado. 
var chart = sheet3.getCharts().get(chartIndex);
// Invoque o método setPivotSource para definir a fonte de dados do gráfico dinâmico 
chart.setPivotSource("PivotTable!PivotTable1");
// Chame o método setHidePivotFieldButtons para ocultar os botões de campo do gráfico dinâmico somente quando o gráfico for PivotChart. 
chart.setHidePivotFieldButtons(false);
// Salve o arquivo Excel 
workbook.save( "pivotChart_test.xls");

A saída é mostrada na imagem abaixo:

Como fazer um gráfico dinâmico no Excel programaticamente

Obtenha uma licença gratuita

Você pode aproveitar uma licença temporária gratuita para experimentar a API sem limitações de avaliação.

Resumindo

Como você passou por essa API JavaScript do Excel de nível empresarial. Além disso, você aprendeu como criar uma tabela dinâmica no Excel usando o Node.js de forma programática e também implementamos a funcionalidade de fazer um gráfico dinâmico. Além disso, você pode acessar a documentação para conhecer as demais funcionalidades.

Além disso, sugerimos que você siga nosso Guia de primeiros passos.

Finalmente, conholdate.com está constantemente escrevendo novas postagens no blog. Portanto, por favor, fique em contato para as atualizações mais recentes.

Faça uma pergunta

Você pode nos informar sobre suas perguntas ou dúvidas em nosso fórum.

Perguntas frequentes

Como você cria uma tabela dinâmica no Excel e a edita?

Você pode instalar este Excel JavaScript API para criar uma tabela dinâmica no Excel programaticamente. Além disso, você pode visitar este link para obter as etapas e o snippet de código.

Veja também