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
- Como criar uma tabela dinâmica no Excel usando Node.js
- Como fazer um gráfico dinâmico no Excel programaticamente
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#:
- Instancie uma instância da classe Workbook.
- Obtenha a referência da primeira planilha chamando o método get(index).
- Defina o nome da planilha invocando o método setName.
- Chame o método getCells para obter a coleção Cells.
- Get o elemento Cell no nome de célula especificado.
- Chame este método setValue para definir o valor do intervalo.
- Obtenha o objeto Cell no intervalo chamando o método get.
- Adicionando uma nova planilha chamando o método add.
- get o elemento Worksheet no índice especificado.
- Nomeie a planilha chamando o método setName.
- Adicione uma Tabela Dinâmica à planilha invocando o método add.
- Mostre os totais gerais definindo o valor do método setRowGrand.
- Defina o valor do método setColumnGrand que indica se o relatório de tabela dinâmica mostra os totais gerais das colunas.
- Agora, defina o valor do método setAutoFormat que indica se o relatório de tabela dinâmica é formatado automaticamente.
- Defina o tipo de tabela dinâmica autoformat invocando o método setAutoFormatType.
- Invoque o método addFieldToArea para arrastar o primeiro, segundo, terceiro, quarto e quinto campos para a área de linha.
- Defina o formato do número do primeiro campo de dados chamando o método getDataFields.
- 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:
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:
- Crie uma instância da classe Workbook.
- Invoque o método add para add uma planilha à coleção.
- get o elemento Worksheet no índice especificado.
- Nomeie a planilha invocando o método setName.
- Adicione um gráfico de colunas chamando o método add.
- get o elemento Chart no índice especificado.
- Invoque o método setPivotSource para definir a fonte de dados do gráfico dinâmico.
- Chame o método setHidePivotFieldButtons para ocultar os botões de campo do gráfico dinâmico somente quando o gráfico for PivotChart.
- 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:
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.