XML é uma linguagem autodescritiva recomendada pelo W3C projetada para armazenar e transportar dados. Um desenvolvedor pode alterar o formato XML para qualquer outro formato legível por humanos, como PDF ou documento MS Word dentro do aplicativo .NET. Este artigo discutirá como converter dados XML em relatórios PDF e MS Word usando C# por meio de modelos simples.
Os seguintes tópicos são discutidos abaixo:
- API .NET para geração de relatórios
- Gerar relatório PDF a partir de dados XML usando C#
- Gerar relatório MS Word DOC/DOCX a partir de dados XML usando C#
API .NET de geração de relatórios – XML para PDF e WORD
GroupDocs.Assembly for .NET é a API para automatizar a geração de relatórios dos dados XML usando o modelo DOCX ou TXT. Além disso, ele é compatível com JSON, CSV e outras fontes de dados para converter os dados em relatórios de diferentes formatos de arquivo.
Você pode baixar o instalador DLLs ou MSI da seção de downloads ou instalar a API em seu aplicativo .NET via NuGet.
PM> Install-Package GroupDocs.Assembly
Gerar relatório PDF a partir de dados XML em C#
3 etapas simples levarão você a converter dados XML no relatório PDF formatado.
- Carregue sua fonte de dados XML.
- Defina o modelo de acordo com os dados XML carregados.
- Por fim, forneça a fonte de dados XML e o modelo para um método de geração de relatório.
Dados XML
Os dados de amostra XML a seguir são usados para convertê-los no relatório PDF. Contém os dados dos gestores e seus respectivos clientes com mais alguns detalhes.
<Managers>
<Manager>
<Name>John Smith</Name>
<Contract>
<Client>
<Name>A Company</Name>
</Client>
<Price>1200000</Price>
</Contract>
<Contract>
...
</Contract>
...
</Manager>
<Manager>
<Name>Tony Anderson</Name>
...
</Manager>
...
</Managers>
Modelo
Defina o modelo no formato TXT ou DOCX de acordo com seus dados XML de origem. Estou usando o modelo abaixo mencionado que é criado de acordo com os dados XML dos gerentes mencionados acima. Isso fará com que o gerador de relatórios itere sobre os Gerentes e seus respectivos Clientes. Após a conclusão do modelo, você está quase pronto. Você pode usar o código abaixo para a geração do seu relatório.
<<foreach \[in managers\]>>Manager: <<\[Name\]>>
Contracts:
<<foreach \[in Contract\]>>- <<\[Client.Name\]>> ($<<\[Price\]>>)
<</foreach>>
<</foreach>>
C# Etapas para gerar relatório PDF a partir de XML
As etapas a seguir permitem automatizar a geração de relatórios PDF a partir de seus dados XML de acordo com o modelo definido.
- Definir arquivo de dados XML, arquivo de modelo de texto e arquivos de relatório de saída em PDF.
- Instanciar XMLDataSoure com arquivo de dados XML.
- Crie DataSourceInfo com fonte de dados XML definida.
- Chame o método AssembleDocument para gerar o relatório PDF.
O código a seguir implementa as etapas acima e gera um PDF da fonte de dados XML usando C#.
// Gerar relatório PDF a partir de dados XML usando o modelo TXT no CSharp
// Defina a fonte de dados, o modelo e os arquivos de relatório de saída.
string xmlDataSource = @"dataPath/Managers.xml";
string templateFilePath = @"templatePath/xml-template.txt";
string reportFilePath = @"reportsPath/xml-to-pdf-report.pdf";
// Carregar fonte de dados XML
XmlDataSource dataSource = new XmlDataSource(xmlDataSource);
// Montar documento para gerar PDF
DocumentAssembler assembler = new DocumentAssembler();
assembler.AssembleDocument(templateFilePath, reportFilePath, new DataSourceInfo(dataSource, "managers"));
Gerar relatório do MS Word a partir de dados XML em C
Na mesma linha, você também pode criar o relatório no formato MS Word DOC/DOCX usando os mesmos dados XML. Não haverá diferença no código do que discutimos acima, exceto que você precisa alterar o nome do arquivo de saída.
- Carregue o arquivo de dados XML.
- Definindo o template em formato TXT ou DOCX.
- Defina o formato do documento do relatório de saída como DOCX.
- Forneça o arquivo de dados XML, modelo e caminho do arquivo de saída para DocumentAssembler para converter o XML em DOCX.
O código a seguir converte o XML e gera o arquivo DOCX usando o modelo definido usando C#.
// Gere o relatório do MS Word a partir de dados XML usando o modelo de texto no CSharp
// Defina a fonte de dados, o modelo e os arquivos de relatório de saída.
string xmlDataSource = @"dataPath/Managers.xml";
string templateFilePath = @"templatePath/xml-template.txt";
string reportFilePath = @"reportsPath/xml-to-word-report.docx";
// Carregar fonte de dados XML
XmlDataSource dataSource = new XmlDataSource(xmlDataSource);
// Montar documento para gerar relatório do Word
DocumentAssembler assembler = new DocumentAssembler();
assembler.AssembleDocument(templateFilePath, reportFilePath, new DataSourceInfo(dataSource, "managers"));
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 XML em formato PDF como um relatório usando C# com o aplicativo .NET. Além disso, discutimos a geração de relatórios no formato DOC/DOCX a partir do mesmo XML utilizando o template. Depois de ler esta série de posts de geração de relatórios; Gere relatórios em PDF e MS Word de JSON, CSV, XML, você pode desenvolver seu próprio aplicativo .NET de criação de relatórios.
Para obter mais informações sobre GroupDocs.Assembly, opções e exemplos, visite documentação e o repositório GitHub. Para mais dúvidas, entre em contato conosco através do fórum.