As planilhas do MS Excel tornaram mais fácil manter e compartilhar uma grande quantidade de dados tabulares. Além disso, você pode realizar várias operações, como aplicar fórmulas, gerar tabelas e gráficos, classificar e filtrar dados e assim por diante. Neste artigo, você aprenderá a implementar os recursos de automação do Excel a partir de seus aplicativos Java. Depois de ler este artigo, você poderá criar arquivos Excel XLSX ou XLS do zero usando Java. Além disso, este artigo abordará como atualizar um arquivo Excel existente, gerar gráficos, aplicar fórmulas e adicionar tabelas dinâmicas em planilhas do Excel.

API Java para criar arquivos do Excel - Download grátis

Aspose.Cells for Java é uma poderosa API de manipulação de planilhas que permite criar ou modificar arquivos do Excel sem o MS Office. A API suporta a adição de tabelas, gráficos, fórmulas e outras operações de manipulação de planilhas de forma programática. Você pode baixar a API gratuitamente ou instalá-la em seus aplicativos baseados em Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-cells</artifactId>
    <version>20.9</version>
</dependency>

Criar Excel XLSX ou XLS usando Java

Os arquivos do MS Excel são chamados de pastas de trabalho e cada pasta de trabalho é composta por uma ou mais planilhas. As planilhas contêm ainda as linhas e colunas para manter os dados na forma de células. Então, vamos começar criando uma pasta de trabalho simples. A seguir estão as etapas para criar um arquivo XLSX do Excel a partir do zero.

  • Crie uma instância da classe Workbook.
  • Acesse a planilha desejada usando o método Workbook.getWorksheets.get().
  • Coloque o valor na célula desejada na planilha usando o identificador da célula, como A1, B3, etc.
  • Salve a pasta de trabalho como um arquivo do Excel usando o método Workbook.save().

O exemplo de código a seguir mostra como criar um arquivo XLSX do Excel usando Java.

// Criar uma nova pasta de trabalho
Workbook workbook = new Workbook();

// Adicionar valor na célula
workbook.getWorksheets().get(0).getCells().get("A1").putValue("Hello World!");

// Salvar como arquivo Excel XLSX
workbook.save("Excel.xlsx"); 

Editar um arquivo XLSX do Excel usando Java

Vamos agora dar uma olhada em como modificar ou inserir dados em um arquivo MS Excel existente. Para isso, basta carregar o arquivo, acessar a planilha desejada e salvar o arquivo atualizado. A seguir estão as etapas para modificar um arquivo Excel existente.

  • Abra o arquivo Excel usando a classe Workbook.
  • Acesse as planilhas e células usando as classes Worksheet e Cell respectivamente.
  • Salve a pasta de trabalho atualizada como um arquivo .xlsx do Excel.

O exemplo de código a seguir mostra como editar um arquivo MS Excel existente usando Java.

// Criar uma nova pasta de trabalho
Workbook workbook = new Workbook("workbook.xls"); 

// Obter a referência da célula "A1" das células de uma planilha
Cell cell = workbook.getWorksheets().get(0).getCells().get("A1");

// Defina o "Olá Mundo!" valor na célula "A1"
cell.setValue("updated cell value.");

// Escreva o arquivo Excel
workbook.save("Excel.xls", FileFormatType.EXCEL_97_TO_2003);

Criar gráficos ou gráficos no Excel usando Java

Gráficos em planilhas são usados para representar visualmente os dados armazenados nas planilhas. Eles facilitam a análise de uma grande quantidade de dados com bastante facilidade. Aspose.Cells para Java fornece uma grande variedade de gráficos que você pode criar dentro dos arquivos do Excel programaticamente. A seguir estão as etapas para criar um gráfico em um arquivo Excel XLSX.

  • Crie um novo arquivo Excel ou carregue um existente usando a classe Workbook.
  • Adicione dados à planilha (opcional).
  • Obtenha a coleção de gráficos da planilha usando o método Worksheet.getCharts().
  • Adicione um novo gráfico usando o método Worksheet.getCharts().add().
  • Obtenha o gráfico recém-criado da coleção.
  • Especifique o intervalo das células para definir NSeries para o gráfico.
  • Salve a pasta de trabalho como um arquivo .xlsx do Excel.

O exemplo de código a seguir mostra como criar gráfico no Excel XLSX usando Java.

// Criar uma nova pasta de trabalho
Workbook workbook = new Workbook("workbook.xlsx"); 

// Obtendo a referência da primeira planilha
WorksheetCollection worksheets = workbook.getWorksheets();
Worksheet sheet = worksheets.get(0);

// Adicionando algum valor de amostra às células
Cells cells = sheet.getCells();
Cell cell = cells.get("A1");
cell.setValue(50);
cell = cells.get("A2");
cell.setValue(100);
cell = cells.get("A3");
cell.setValue(150);
cell = cells.get("B1");
cell.setValue(4);
cell = cells.get("B2");
cell.setValue(20);
cell = cells.get("B3");
cell.setValue(50);

// obter gráficos na planilha
ChartCollection charts = sheet.getCharts();

// Adicionando um gráfico à planilha
int chartIndex = charts.add(ChartType.PYRAMID, 5, 0, 15, 5);
Chart chart = charts.get(chartIndex);

// Adicionando NSeries (fonte de dados do gráfico) ao gráfico variando de "A1"
// célula para "B3"
SeriesCollection serieses = chart.getNSeries();
serieses.add("A1:B3", true);

// Escreva o arquivo Excel 
workbook.save("Excel_with_Chart.xlsx");
criar gráfico no excel usando java

Criar uma tabela dinâmica no Excel XLSX usando Java

As tabelas dinâmicas nas planilhas do Excel têm várias finalidades, como adicionar filtros aos dados, computar totais, resumir dados, etc. As tabelas dinâmicas podem ser criadas usando o intervalo das células na planilha. A seguir estão as etapas para criar uma tabela dinâmica em uma planilha do Excel.

  • Crie uma nova Pasta de trabalho ou carregue um arquivo existente.
  • Insira os dados na planilha (opcional).
  • Acesse a coleção de tabelas dinâmicas usando o método Worksheet.getPivotTables().
  • Adicione uma nova tabela dinâmica na planilha usando o método Worksheet.getPivotTables().add().
  • Forneça dados para a tabela dinâmica.
  • Salve a pasta de trabalho.

O exemplo de código a seguir mostra como criar uma tabela dinâmica no Excel usando Java.

// Criar uma nova pasta de trabalho
Workbook workbook = new Workbook("workbook.xlsx"); 

// Pegue a primeira planilha.
Worksheet sheet = workbook.getWorksheets().get(0);

// Obtendo a coleção de células da planilha
Cells cells = sheet.getCells();

// Configurando o valor para as células
Cell cell = cells.get("A1");
cell.setValue("Sport");
cell = cells.get("B1");
cell.setValue("Quarter");
cell = cells.get("C1");
cell.setValue("Sales");

cell = cells.get("A2");
cell.setValue("Golf");
cell = cells.get("A3");
cell.setValue("Golf");
cell = cells.get("A4");
cell.setValue("Tennis");
cell = cells.get("A5");
cell.setValue("Tennis");
cell = cells.get("A6");
cell.setValue("Tennis");
cell = cells.get("A7");
cell.setValue("Tennis");
cell = cells.get("A8");
cell.setValue("Golf");

cell = cells.get("B2");
cell.setValue("Qtr3");
cell = cells.get("B3");
cell.setValue("Qtr4");
cell = cells.get("B4");
cell.setValue("Qtr3");
cell = cells.get("B5");
cell.setValue("Qtr4");
cell = cells.get("B6");
cell.setValue("Qtr3");
cell = cells.get("B7");
cell.setValue("Qtr4");
cell = cells.get("B8");
cell.setValue("Qtr3");

cell = cells.get("C2");
cell.setValue(1500);
cell = cells.get("C3");
cell.setValue(2000);
cell = cells.get("C4");
cell.setValue(600);
cell = cells.get("C5");
cell.setValue(1500);
cell = cells.get("C6");
cell.setValue(4070);
cell = cells.get("C7");
cell.setValue(5000);
cell = cells.get("C8");
cell.setValue(6430);


PivotTableCollection pivotTables = sheet.getPivotTables();

// Adicionando uma tabela dinâmica à planilha
int index = pivotTables.add("=A1:C8", "E3", "PivotTable2");

// Acessando a instância da tabela dinâmica recém-adicionada
PivotTable pivotTable = pivotTables.get(index);

// Não mostrando totais gerais para linhas.
pivotTable.setRowGrand(false);

// Arrastando o primeiro campo para a área da linha.
pivotTable.addFieldToArea(PivotFieldType.ROW, 0);

// Arrastando o segundo campo para a área da coluna.
pivotTable.addFieldToArea(PivotFieldType.COLUMN, 1);

// Arrastando o terceiro campo para a área de dados.
pivotTable.addFieldToArea(PivotFieldType.DATA, 2);

// Escreva o arquivo Excel 
workbook.save("Excel_with_Chart.xlsx");
criar tabela dinâmica no excel usando java

Adicionar fórmulas para células no arquivo do Excel usando Java

Aspose.Cells para Java também permite trabalhar com fórmulas nas planilhas do Excel. Você pode aplicar as funções internas e complementares às células.

Aplicar funções internas no Excel

Para usar as funções internas, você pode simplesmente acessar a célula desejada na planilha e adicionar a fórmula usando o método Cell.setFormula(String). O exemplo de código a seguir mostra como definir uma fórmula interna usando Java.

// Criar uma nova pasta de trabalho
Workbook workbook = new Workbook();

// Adicionar valor na célula
workbook.getWorksheets().get(0).getCells().get(0).setFormula("=H7*(1+IF(P7 =$L$3,$M$3, (IF(P7=$L$4,$M$4,0))))");

// Salvar como arquivo Excel XLSX
workbook.save("Excel.xlsx"); 

Adicionar funções suplementares no Excel

Pode haver um caso em que você precise usar uma função definida pelo usuário. Para isso, você terá que registrar a função add-in usando um arquivo .xlam (suplemento habilitado para macro do Excel) e depois usá-lo para as células desejadas. Para registrar as funções add-in, Aspose.Cells para Java fornece os métodos registerAddInFunction(int, String) e registerAddInFunction(String, String, boolean). O exemplo de código a seguir mostra como registrar e usar uma função de suplemento usando Java.

// criar uma nova pasta de trabalho
Workbook workbook = new Workbook();

// Registre o suplemento habilitado para macro junto com o nome da função
int id = workbook.getWorksheets().registerAddInFunction("TESTUDF.xlam", "TEST_UDF", false);

// Registre mais funções no arquivo (se houver)
workbook.getWorksheets().registerAddInFunction(id, "TEST_UDF1"); //in this way you can add more functions that are in the same file

// Acesse a primeira planilha
Worksheet worksheet = workbook.getWorksheets().get(0);

// Acesse a primeira célula
Cell cell = worksheet.getCells().get("A1");

// Definir o nome da fórmula presente no suplemento
cell.setFormula("=TEST_UDF()"); 

// Salvar como arquivo Excel XLSX
workbook.save("Excel.xlsx"); 

Conclusão

Neste artigo, você viu como criar arquivos do MS Excel do zero usando Java sem o MS Office. Você também aprendeu como atualizar pastas de trabalho, criar gráficos, adicionar tabelas e aplicar fórmulas a valores de células em planilhas do MS Excel. Você pode aprender mais sobre a API Java Excel da Aspose usando documentação.

Veja também