Introdução
O Aspose.Words LINQ Reporting Engine for .NET permite que desenvolvedores criem relatórios ricos e orientados a dados combinando uma sintaxe de tags em texto simples com consultas LINQ. Os relatórios podem se vincular a coleções, bancos de dados, JSON, XML ou objetos personalizados, com filtragem, agrupamento e agregação realizados diretamente dentro do modelo. O resultado é um relatório totalmente preenchido em formatos Word.
Instalação e Configuração
- Instale o pacote NuGet
Aspose.Words. - Aplique sua licença ( Licenciamento Medido ).
- Adicione uma referência a
Aspose.Wordse garanta que as dependências sejam incluídas. - Para as etapas completas, veja o Guia de Instalação .
Plataformas Compatíveis: Windows, Linux e macOS com .NET Framework, .NET ou Mono. IDEs: Visual Studio 2017–2026, JetBrains Rider, MonoDevelop.
Formatos de Modelo / Saída Compatíveis: DOC, DOCX, RTF, DOT, DOTX, DOTM, DOCM, Word 2003 XML e Word 2007 XML.
Início Rápido
Crie um Relatório a partir de XML:
using Aspose.Words;
using Aspose.Words.Reporting;
var doc = new Document("ReportTemplate.docx");
var dataSource = new XmlDataSource("Data.xml");
var engine = new ReportingEngine();
engine.BuildReport(doc, dataSource, "data");
doc.Save("Report.Output.docx");Recursos e Funcionalidades
Sintaxe do Modelo
- Tags como
<<Name>>,<<foreach:Orders>>,<<if:Condition>>são legíveis por humanos. - Suportado em parágrafos, tabelas, cabeçalhos e rodapés.
Vinculação de Dados LINQ
- Vincular a coleções, DataTables, EF consultas, JSON, XML ou objetos personalizados.
- LINQ inline:
Where,OrderBy,GroupBy, projeções.
Filtragem, Agrupamento & Ordenação
- Blocos condicionais com
<<if:…>>/<<endif>>. - Agrupar dados com
<<groupby:Property>>. - Ordenação inline com
orderbycláusulas.
Funções de Agregação
- Tags incorporadas:
<<sum:>>,<<avg:>>,<<count>>,<<min:>>,<<max:>>. - Atualizações automáticas quando os conjuntos de dados mudam.
Lógica Condicional & Switch
- Usar
<<switch:Expression>>,<<case:Value>>,<<default>>para múltiplos cenários. - Simplifica modelos com diferentes layouts.
Dados Aninhados & Hierárquicos
- Navegue em grafos de objetos (por exemplo,).,
<<foreach:Order.Items>>). - Crie tabelas/listas aninhadas com agrupamento + condições.
Funções Personalizadas & Extensibilidade
- Registre métodos de extensão ou manipuladores para lógica personalizada.
- Execute formatação e transformações especializadas.
Herança de Template
- Defina modelos base e reutilize‑os em modelos filhos.
- Mantenha a identidade visual e os estilos consistentes.
Eventos e Callbacks
- Integrar com
ReportBuildStarted,TagProcessed,ReportBuildFinished. - Adicione registro, injete gráficos/imagens ou modifique a saída dinamicamente.
Localização & Internacionalização
- Formate datas, números e moedas de acordo com a cultura.
- Integre arquivos de recursos para relatórios multilíngues.
FAQ
- Como isso difere do Mail Merge? O LINQ Reporting usa tags de texto e suporta expressões LINQ, ao contrário dos campos tradicionais de mail merge.
- Quais fontes de dados são suportadas? XML, JSON, CSV, DataTables, Entity Framework e objetos personalizados .NET.
- Posso incorporar gráficos e imagens? Sim. Os modelos podem incluir gráficos, códigos de barras e imagens preenchidas a partir dos dados.
- Quais formatos posso gerar? DOC, DOCX, RTF, DOT, DOTX, DOTM, DOCM, Word 2003 XML, e Word 2007 XML.
- Ele oferece suporte à localização? Sim. Formatação sensível à cultura e integração de recursos são suportadas.