Gerar relatórios de dados do Excel em Java

Você pode apresentar dados do Microsoft Excel na forma de relatórios personalizados para seus usuários, como clientes, partes interessadas, etc. Como desenvolvedor Java, você pode gerar esses relatórios programaticamente usando planilhas do Excel como uma tabela de dados. Neste artigo, você aprenderá a gerar relatórios a partir de dados do Excel usando Java.

Os seguintes tópicos são discutidos/abordados neste artigo:

API Java para geração de relatórios

Para gerar os relatórios a partir dos dados do Excel, usarei a API GroupDocs.Assembly for Java. Ele permite que você crie aplicativos poderosos de automação de documentos e geração de relatórios. Ele busca dados da fonte de dados de acordo com o documento de modelo definido, monta-o e gera relatórios no formato de saída especificado. A API oferece suporte à busca de dados de várias fontes de dados, como XML, Excel, JSON e CSV. Você pode gerar relatórios facilmente em todos os formatos de arquivo comumente usados, como PDF, HTML e Microsoft Word.

Você pode baixar o JAR da API ou apenas adicionar a seguinte configuração pom.xml em seu aplicativo Java baseado em Maven para experimentar os exemplos de código mencionados abaixo.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-assembly</artifactId>
        <version>21.7</version> 
</dependency>

Gerar relatórios de dados do Excel usando Java

Você pode gerar relatórios facilmente no Word a partir de seus dados do Excel seguindo as etapas simples mencionadas abaixo:

  1. Obter fonte de dados do Excel
  2. Defina um template de acordo com os dados do Excel
  3. Converter dados do Excel em relatório do Word em Java

Fonte de dados do Excel

Você pode usar os dados tabulares como uma fonte de dados fornecida na planilha do Excel para gerar relatórios. Usarei os seguintes dados de amostra do Excel para gerar o relatório. São os dados dos contratos dos clientes com seus respectivos gerentes e o preço do contrato acordado.

Fonte de dados do Excel

Fonte de dados do Excel

Modelo

Você pode usar uma sintaxe de modelo baseada em Linq para criar um modelo. Um modelo é composto de conteúdo de documento comum e tags que descrevem a estrutura do modelo e as ligações de dados. Você pode definir o seguinte modelo no arquivo DOCX ou XLSX. Este modelo permite iterar os dados dos Contratos e seus respectivos gerentes com o preço do contrato. Cada grupo no modelo possui uma chave exclusiva definida pelo seletor de entrada e contém itens da enumeração de origem associada a essa chave. Você pode acessar a chave de uma instância de grupo usando a propriedade Key. Depois de criar o modelo, você pode pular para o código para gerar o relatório. Você pode ler mais sobre sintaxe de modelo na documentação.

Modelo de relatório

Modelo de relatório

Converter dados do Excel para relatório do Word em Java

Você pode automatizar a conversão de dados do Excel para o relatório DOCX com base no modelo seguindo as etapas mencionadas abaixo:

O exemplo de código a seguir mostra como gerar um relatório de uma fonte de dados do Excel de acordo com o modelo definido usando Java.

String srcDocument = "C:\\Files\\template.docx";
String docReport = "C:\\Files\\Output.docx";
String dataFilePath = "C:\\Files\\Contracts_Data.xlsx";

// Defina a extração de nomes de coluna da primeira linha.
DocumentTableOptions options = new DocumentTableOptions();
options.setFirstRowContainsColumnNames(true);

// Criar tabela de documentos
DocumentTable table = new DocumentTable(dataFilePath, 0, options);

// Criar montador de documentos
DocumentAssembler assembler = new DocumentAssembler();

// Reúna dados e gere relatórios
assembler.assembleDocument(srcDocument,docReport, 
  new DataSourceInfo(new DataStorage(), null),
  new DataSourceInfo(table,"ds"));
Relatório gerado

Relatório gerado

A classe DocumentTableOptions fornece um conjunto de opções para controlar a extração de dados de uma tabela de documentos. Defino a propriedade FirstRowContainsColumnNames como true para que os cabeçalhos das colunas não se tornem parte dos dados do relatório.

A classe DocumentTable fornece acesso aos dados de uma única tabela (ou planilha) localizada em um documento externo para ser usado durante a montagem de um documento.

A classe DocumentAssembler fornece vários métodos para gerar relatórios usando o documento de modelo definido com dados. O método assembleDocument() dessa classe recebe três parâmetros de entrada, o modelo definido como documento de origem, o caminho do arquivo de saída e a fonte de dados. Ele preenche os dados da fonte de dados com base no documento de modelo fornecido e armazena o documento resultante no caminho de destino. Você pode salvar o documento resultante em vários formatos de arquivo suportados, como Word, Excel ou HTML.

Obtenha uma licença gratuita

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

Conclusão

Neste artigo, você aprendeu como gerar relatórios de dados do Excel usando Java. Você também aprendeu como criar um modelo de relatório para gerar relatórios. Você pode aprender mais sobre GroupDocs.Assembly for Java API usando a documentação. Em caso de qualquer ambiguidade, não hesite em contactar-nos no fórum.

Veja também