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
- Gerar relatório PDF a partir de dados CSV
- Gerar relatório do MS Word a partir de dados CSV
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 pom.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.
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.