Reporting
Use the Wordize Reporting for .NET module to build reports using LINQ Reporting Engine. You can also select any document conversion module to work with the required formats.
A full list of conversion modules can be found on the Supported Document Formats page.
Wordize offers a powerful reporting engine that enables developers to generate dynamic, data-driven documents efficiently. Using the Wordize Reporting for .NET module, you can populate templates with data from various sources, creating customized reports seamlessly.
How To Build a Report
LINQ is a .NET feature that allows to query data from various sources (like collections, databases, XML, and more) using a syntax integrated directly into the language. It provides a consistent and readable way to filter, sort, group, and manipulate data.
Using Wordize Reporting for .NET, you can extract and structure data using LINQ, then pass that data to a template document for generating dynamic reports. This approach is useful for creating customized invoices, summaries, and other data-driven documents.
In the further examples, the following JSON, XML or Class will be used as a data source:
JSON:
{
manager: {
Photo: "C:/Temp/photo.png",
Name: "James Bond",
Age: 37
}
}
XML:
<manager>
<Photo>C:/Temp/photo.png</Photo>
<Name>James Bond</Name>
<Age>37</Age>
</manager>
Class:
public class Manager
{
public string Photo { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
To build a report with LINQ syntax, use one of the BuildReport methods:
- BuildReport(string, string, object)
- BuildReport(string, string, object, ReportBuilderOptions)
- BuildReport(string, string, SaveFormat, object)
- BuildReport(string, string, SaveFormat, object, ReportBuilderOptions)
- BuildReport(Stream, Stream, SaveFormat, object)
- BuildReport(Stream, Stream, SaveFormat, object, ReportBuilderOptions)
- BuildReport(string, string, object, string)
- BuildReport(string, string, object, string, ReportBuilderOptions)
- BuildReport(string, string, SaveFormat, object, string)
- BuildReport(string, string, SaveFormat, object,string, ReportBuilderOptions)
- BuildReport(Stream, Stream, SaveFormat, object, string)
- BuildReport(Stream, Stream, SaveFormat, object,string, ReportBuilderOptions)
- BuildReport(string, string, object[], string[])
- BuildReport(string, string, object[], string[], ReportBuilderOptions)
- BuildReport(string, string, SaveFormat, object[], string[])
- BuildReport(string, string, SaveFormat, object[], string[], ReportBuilderOptions)
- BuildReport(Stream, Stream, SaveFormat, object[], string[])
- BuildReport(Stream, Stream, SaveFormat, object[], string[], ReportBuilderOptions)
The following code example shows how to build a report using the BuildReport(string, string, object) method:
// Load data from JSON with AlwaysGenerateRootObject load option enabled.
JsonDataLoadOptions options = new JsonDataLoadOptions();
options.AlwaysGenerateRootObject = true;
JsonDataSource ds = new JsonDataSource(@"C:\Temp\data.json", options);
// Build the report.
ReportBuilder.BuildReport(@"C:\Temp\in.docx", @"C:\Temp\out.docx", ds);
The following code example shows how to build a report using the BuildReport(string, string, SaveFormat, object) method:
// Load data from JSON with AlwaysGenerateRootObject load option enabled.
JsonDataLoadOptions options = new JsonDataLoadOptions();
options.AlwaysGenerateRootObject = true;
JsonDataSource ds = new JsonDataSource(@"C:\Temp\data.json", options);
// Build the report explicitly specifying the output save format.
ReportBuilder.BuildReport(@"C:\Temp\in.docx", @"C:\Temp\out.docx", SaveFormat.Docx, ds);
The following code example shows how to build a report using the BuildReport(Stream, Stream, SaveFormat, object) method:
// Load data from JSON with AlwaysGenerateRootObject load option enabled.
JsonDataLoadOptions options = new JsonDataLoadOptions();
options.AlwaysGenerateRootObject = true;
JsonDataSource ds = new JsonDataSource(@"C:\Temp\data.json", options);
// Build the report loading template from stream and saving the output to stream.
using (Stream inputStream = File.OpenRead(@"C:\Temp\in.docx"))
using (Stream outputStream = File.Create(@"C:\Temp\out.docx"))
ReportBuilder.BuildReport(inputStream, outputStream, SaveFormat.Docx, ds);
The following code example shows how to build a report using the BuildReport(string, string, object, string) method:
// Load data from XML
XmlDataSource ds = new XmlDataSource(@"C:\Temp\data.xml");
// Build report explicatively specifying data source name.
ReportBuilder.BuildReport(@"C:\Temp\in.docx", @"C:\Temp\out.docx", ds, "manager");
The following code example shows how to build a report using the BuildReport(string, string, SaveFormat, object, string) method:
// Load data from XML
XmlDataSource ds = new XmlDataSource(@"C:\Temp\data.xml");
// Build the report explicitly specifying the output save format and data source name.
ReportBuilder.BuildReport(@"C:\Temp\in.docx", @"C:\Temp\out.docx", SaveFormat.Docx, ds, "manager");
The following code example shows how to build a report using the BuildReport(Stream, Stream, SaveFormat, object, string) method:
// Load data from XML
XmlDataSource ds = new XmlDataSource(@"C:\Temp\data.xml");
// Build the report loading template from stream and saving the output to stream.
using (Stream inputStream = File.OpenRead(@"C:\Temp\in.docx"))
using (Stream outputStream = File.Create(@"C:\Temp\out.docx"))
ReportBuilder.BuildReport(inputStream, outputStream, SaveFormat.Docx, ds, "manager");
The following code example shows how to build a report using the BuildReport(string, string, object[], string[]) method:
// Use object as a data source.
Manager manager = new Manager() { Photo = @"C:\Temp\photo.png", Name = "James Bond", Age = 37 };
object[] dataSources = new object[] { manager, "This is my title" };
string[] dataSourceNames = new string[] { "manager", "title" };
// Build report specifying array of data sources.
ReportBuilder.BuildReport(@"C:\Temp\in.docx", @"C:\Temp\out.docx", dataSources, dataSourceNames);
The following code example shows how to build a report using the BuildReport(string, string, SaveFormat, object[], string[]) method:
// Use object as a data source.
Manager manager = new Manager() { Photo = @"C:\Temp\photo.png", Name = "James Bond", Age = 37 };
object[] dataSources = new object[] { manager, "This is my title" };
string[] dataSourceNames = new string[] { "manager", "title" };
// Build report specifying array of data sources.
ReportBuilder.BuildReport(@"C:\Temp\in.docx", @"C:\Temp\out.docx", SaveFormat.Docx, dataSources, dataSourceNames);
The following code example shows how to build a report using the BuildReport(Stream, Stream, SaveFormat, object[], string[]) method:
// Use object as a data source.
Manager manager = new Manager() { Photo = @"C:\Temp\photo.png", Name = "James Bond", Age = 37 };
object[] dataSources = new object[] { manager, "This is my title" };
string[] dataSourceNames = new string[] { "manager", "title" };
// Build the report loading template from stream and saving the output to stream.
using (Stream inputStream = File.OpenRead(@"C:\Temp\in.docx"))
using (Stream outputStream = File.Create(@"C:\Temp\out.docx"))
ReportBuilder.BuildReport(inputStream, outputStream, SaveFormat.Docx, dataSources, dataSourceNames);
Reporting Options
Wordize allows you to customize the behavior of the report generation process, controlling how data is transformed for display in the output document.
Wordize supports the following ReportBuilderOptions options:
- KnownTypes – gets an unordered set containing Type objects, which fully or partially qualified names can be used within report templates
- MissingMemberMessage – specifies a string value printed instead of a reference to a missing object member (default is an empty string)
- Options – specifies a set of flags that control report rendering behavior
The following code example shows how to build a report using the BuildReport(string, string, object, ReportBuilderOptions) method:
// Load data from JSON with AlwaysGenerateRootObject load option enabled.
JsonDataLoadOptions jsonLoadOptions = new JsonDataLoadOptions();
jsonLoadOptions.AlwaysGenerateRootObject = true;
JsonDataSource ds = new JsonDataSource(@"C:\Temp\data.json", jsonLoadOptions);
ReportBuilderOptions reportBuilderOptions = new ReportBuilderOptions();
reportBuilderOptions.AllowMissingMembers = true;
// Build the report.
ReportBuilder.BuildReport(@"C:\Temp\in.docx", @"C:\Temp\out.docx", ds, reportBuilderOptions);
The following code example shows how to build a report using the BuildReport(string, string, SaveFormat, object, ReportBuilderOptions) method:
// Load data from JSON with AlwaysGenerateRootObject load option enabled.
JsonDataLoadOptions jsonLoadOptions = new JsonDataLoadOptions();
jsonLoadOptions.AlwaysGenerateRootObject = true;
JsonDataSource ds = new JsonDataSource(@"C:\Temp\data.json", jsonLoadOptions);
ReportBuilderOptions reportBuilderOptions = new ReportBuilderOptions();
reportBuilderOptions.AllowMissingMembers = true;
// Build the report explicitly specifying the output save format.
ReportBuilder.BuildReport(@"C:\Temp\in.docx", @"C:\Temp\out.docx", SaveFormat.Docx, ds, reportBuilderOptions);
The following code example shows how to build a report using the BuildReport(Stream, Stream, SaveFormat, object, ReportBuilderOptions) method:
// Load data from JSON with AlwaysGenerateRootObject load option enabled.
JsonDataLoadOptions jsonLoadOptions = new JsonDataLoadOptions();
jsonLoadOptions.AlwaysGenerateRootObject = true;
JsonDataSource ds = new JsonDataSource(@"C:\Temp\data.json", jsonLoadOptions);
ReportBuilderOptions reportBuilderOptions = new ReportBuilderOptions();
reportBuilderOptions.AllowMissingMembers = true;
// Build the report loading template from stream and saving the output to stream.
using (Stream inputStream = File.OpenRead(@"C:\Temp\in.docx"))
using (Stream outputStream = File.Create(@"C:\Temp\out.docx"))
ReportBuilder.BuildReport(inputStream, outputStream, SaveFormat.Docx, ds, reportBuilderOptions);
The following code example shows how to build a report using the BuildReport(string, string, object, string, ReportBuilderOptions) method:
// Load data from XML
XmlDataSource ds = new XmlDataSource(@"C:\Temp\data.xml");
ReportBuilderOptions reportBuilderOptions = new ReportBuilderOptions();
reportBuilderOptions.AllowMissingMembers = true;
// Build report explicatively specifying data source name.
ReportBuilder.BuildReport(@"C:\Temp\in.docx", @"C:\Temp\out.docx", ds, "manager", reportBuilderOptions);
The following code example shows how to build a report using the BuildReport(string, string, SaveFormat, object,string, ReportBuilderOptions) method:
// Load data from XML
XmlDataSource ds = new XmlDataSource(@"C:\Temp\data.xml");
ReportBuilderOptions reportBuilderOptions = new ReportBuilderOptions();
reportBuilderOptions.AllowMissingMembers = true;
// Build the report explicitly specifying the output save format and data source name.
ReportBuilder.BuildReport(@"C:\Temp\in.docx", @"C:\Temp\out.docx", SaveFormat.Docx, ds, "manager", reportBuilderOptions);
The following code example shows how to build a report using the BuildReport(Stream, Stream, SaveFormat, object, string, ReportBuilderOptions) method:
// Load data from XML
XmlDataSource ds = new XmlDataSource(@"C:\Temp\data.xml");
ReportBuilderOptions reportBuilderOptions = new ReportBuilderOptions();
reportBuilderOptions.AllowMissingMembers = true;
// Build the report loading template from stream and saving the output to stream.
using (Stream inputStream = File.OpenRead(@"C:\Temp\in.docx"))
using (Stream outputStream = File.Create(@"C:\Temp\out.docx"))
ReportBuilder.BuildReport(inputStream, outputStream, SaveFormat.Docx, ds, "manager", reportBuilderOptions);
The following code example shows how to build a report using the BuildReport(string, string, object[], string[], ReportBuilderOptions) method:
// Use object as a data source.
Manager manager = new Manager() { Photo = @"C:\Temp\photo.png", Name = "James Bond", Age = 37 };
object[] dataSources = new object[] { manager, "This is my title" };
string[] dataSourceNames = new string[] { "manager", "title" };
ReportBuilderOptions reportBuilderOptions = new ReportBuilderOptions();
reportBuilderOptions.AllowMissingMembers = true;
// Build report specifying array of data sources.
ReportBuilder.BuildReport(@"C:\Temp\in.docx", @"C:\Temp\out.docx", dataSources, dataSourceNames, reportBuilderOptions);
The following code example shows how to build a report using the BuildReport(string, string, SaveFormat, object[], string[], ReportBuilderOptions) method:
// Use object as a data source.
Manager manager = new Manager() { Photo = @"C:\Temp\photo.png", Name = "James Bond", Age = 37 };
object[] dataSources = new object[] { manager, "This is my title" };
string[] dataSourceNames = new string[] { "manager", "title" };
ReportBuilderOptions reportBuilderOptions = new ReportBuilderOptions();
reportBuilderOptions.AllowMissingMembers = true;
// Build report specifying array of data sources.
ReportBuilder.BuildReport(@"C:\Temp\in.docx", @"C:\Temp\out.docx", SaveFormat.Docx, dataSources, dataSourceNames, reportBuilderOptions);
The following code example shows how to build a report using the BuildReport(Stream, Stream, SaveFormat, object[], string[], ReportBuilderOptions) method:
// Use object as a data source.
Manager manager = new Manager() { Photo = @"C:\Temp\photo.png", Name = "James Bond", Age = 37 };
object[] dataSources = new object[] { manager, "This is my title" };
string[] dataSourceNames = new string[] { "manager", "title" };
ReportBuilderOptions reportBuilderOptions = new ReportBuilderOptions();
reportBuilderOptions.AllowMissingMembers = true;
// Build the report loading template from stream and saving the output to stream.
using (Stream inputStream = File.OpenRead(@"C:\Temp\in.docx"))
using (Stream outputStream = File.Create(@"C:\Temp\out.docx"))
ReportBuilder.BuildReport(inputStream, outputStream, SaveFormat.Docx, dataSources, dataSourceNames, reportBuilderOptions);