O Comma Separated Values (CSV) é um formato de arquivo para armazenar os dados na forma de texto simples onde os valores são separados por vírgulas. CSV é amplamente utilizado para troca de dados entre aplicativos. Como desenvolvedor, muitas vezes precisamos converter os grandes dados CSV em um formato apresentável. Este artigo irá guiá-lo para converter dados CSV em relatórios PDF e MS Word em Java usando um modelo simples.

Os seguintes tópicos são abordados abaixo:

API Java de geração de relatórios

GroupDocs.Assembly for Java é a API de geração de relatórios que usei neste artigo para gerar relatórios dos dados CSV selecionados e um modelo no formato TXT. Ele também oferece suporte à automação de geração de relatórios de várias fontes de dados, como JSON, XML e também de arquivos MS Word, Excel e PowerPoint como arquivos de dados.

Baixe ou configure

Você pode baixar o arquivo JAR da seção de downloads, ou apenas obter as configurações de repositório e dependência para o pox.xml de seus aplicativos Java baseados em maven.

<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.4</version> 
</dependency>

Gerar relatório PDF a partir de dados CSV em Java

Vamos começar com a transformação dos dados em PDF apresentável. As etapas a seguir levarão você a converter dados CSV em um relatório PDF formatado.

  • Carregar fonte de dados CSV
  • Definir modelo de acordo com os dados CSV
  • Fornecer fonte de dados CSV e modelo para método simples para gerar relatório PDF.
Relatório CSV para PDF em Java

Dados CSV

Para a geração do relatório em PDF, usarei os seguintes dados CSV de amostra de diferentes pessoas, juntamente com suas respectivas idades e data de nascimento.

Name,Age,Birth  
John Doe,32,4/1/1989 16:00  
Jane Doe,29,1/31/1992 7:00  
John Smith,53,3/8/1968 13:00

Modelo

Defina o seguinte modelo no formato TXT ou DOCX. Isso permite iterar a lista de pessoas com seus detalhes. Depois disso, você pode pular para o código para geração do relatório.

<<foreach \[in persons\]>>Name: <<\[Name\]>>, Age: <<\[Age\]>>, Date of Birth: <<\[Birth\]:"dd.MM.yyyy">>
<</foreach>>
Average age: <<\[persons.**average**(p => p.Age)\]>>

Etapas Java para gerar relatório PDF a partir de CSV

As etapas a seguir explicam a conversão automática de dados CSV em um relatório PDF de acordo com o modelo definido.

  • Definir arquivo de dados CSV, arquivo de modelo .txt e caminhos de arquivo de relatório de saída em PDF.
  • Instanciar CsvDataSoure com arquivo de dados CSV.
  • Crie DataSourceInfo com o CsvDataSource definido.
  • Chame o método assembleDocument da classe DocumentAssembler para obter o relatório PDF gerado.

O código a seguir mostra como converter dados CSV em relatório PDF em Java.

// Gerar relatório PDF a partir de dados CSV usando o modelo TXT em Java com API GroupDocs.Assembly
// Defina a fonte de dados, o modelo e os arquivos de relatório de saída.
String csvDataSource = "dataPath/Person.csv";
String templateFilePath = "templatePath/template.txt";
String reportFilePath = "reportsPath/reportFromCSV.pdf";

// Fonte de dados CSV Laod
CsvDataLoadOptions options = new CsvDataLoadOptions(true);
CsvDataSource datasource= new CsvDataSource(csvDataSource,options);
DataSourceInfo dataSourceInfo = new DataSourceInfo(datasource,"persons");

// Gerar relatório
DocumentAssembler assembler = new DocumentAssembler();
assembler.assembleDocument(templateFilePath, reportFilePath, dataSourceInfo);

Gerar relatório do MS Word a partir de dados CSV em Java

É muito semelhante à geração de relatório PDF acima, você pode criar facilmente o relatório MS Word DOC/DOCX a partir dos dados CSV:

  • Carregue os dados CSV do arquivo.
  • Definindo o template em formato TXT ou DOCX.
  • Defina o formato do documento do relatório de saída como DOC/DOCX.
  • O restante do código permanecerá o mesmo para gerar o relatório MS Word DOCX a partir dos dados CSV.

O código a seguir mostra como converter dados CSV em relatório DOCX em Java.

// Gerar relatório do Word a partir de dados CSV usando o modelo TXT em Java com API GroupDocs.Assembly
// Defina a fonte de dados, o modelo e os arquivos de relatório de saída.
String csvDataSource = "dataPath/Person.csv";
String templateFilePath = "templatePath/template.txt";
String reportFilePath = "reportsPath/reportFromCSV.docx";

// Carregar fonte de dados CSV
CsvDataLoadOptions options = new CsvDataLoadOptions(true);
CsvDataSource datasource= new CsvDataSource(csvDataSource,options);
DataSourceInfo dataSourceInfo = new DataSourceInfo(datasource,"persons");

// Gerar relatório
DocumentAssembler assembler = new DocumentAssembler();
assembler.assembleDocument(templateFilePath, reportFilePath, dataSourceInfo);

Obtenha uma licença de API gratuita

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

Conclusão

Para resumir, você aprendeu a converter os dados CSV em relatórios PDF e MS Word em Java. Espero que agora você se sinta à vontade para criar seu próprio aplicativo baseado em Java para gerar relatórios convertendo dados CSV para o formato PDF. Da mesma forma, você pode gerar relatórios usando fontes de dados como JSON e XML.

Para saber mais sobre a API, você pode visitar documentation e o repositório GitHub. Em caso de dúvidas e ambiguidades, entre em contato com o suporte gratuito no fórum.

Veja também