GroupDocs.Assembly for .NET is an API that allows you to generate documents in popular microsoft office and email file formats based upon template documents and data obtained from various sources including databases, XML, JSON, OData, objects of custom .NET types, external documents, and more. The following is the list of salient features which are offered by the GroupDocs.Assembly API:
Multiple data formats support
Use formulae & perform sequential data operations
Apply upper, lower, capital, firstcap formatting to strings in template syntax
Template syntax support formatting of ordinal, cardinal, alphabetic numeric nature
Support template documents with custom variables & text comments within template syntax tags
Dynamically insert out document content in report
Dynamically configure background color of html documents & generate barcode in reports
Dynamically insert hyperlinks in reports & apply attributes to email message body
Dynamically attach email attachments
Support of next field analogue of Microsoft Word
Update fields during word processing document assembly
Apply formula during spreadsheet assembly
Template formatting for numeric, text, image, date-time, chart elements
Conditional formatting of template text elements
Linq-based template syntax
Change format of assembled file using explicit specifications or file extension
Auto-removal of empty paragraphs
Generate various report types, e.g., charts, image, tables, lists and more
Inline template syntax errors in generated documents instead of exception throwing.
Load template documents from html with resources and save assembled Word, Excel, PowerPoint & emails to html with resources
Following is the detail given about how the features are offered with their usage and limits.
Data Sources
Data Formats
Feature
Support in GroupDocs.Assembly for .NET
Database
Supported (using DataSet, DataTable, etc.)
XML
Supported (using DataSet.ReadXml or XML deserialization of custom objects)
Supported (using a third-party component like Json.NET on DataSet or custom objects in .NET
Custom .NET Objects
Supported
Ability to use Spreadsheet as Table of Data
Supported
Ability to use Word processing Table as Table of Data
Supported
Data Manipulation Capabilities
Feature
Support in GroupDocs.Assembly for .NET
Formulas
Supported (using C# syntax subset)
Sequential Data Operations (filtering, ordering, grouping, aggregating, etc.)
Supported (through LINQ syntax for data sources of all types)
Type Member Invocation
Supported
Built-In Data Relation Support
Supported
Data Processing Customization
Supported (using external .NET types)
External Document Import
Supported
Explicit Support for Multiple Data Sources
A new overload DocumentAssembler.AssembleDocument is added in the new release. Using this overload user can reference multiple data source objects and their members in the template. Overload accepts an array of data source names and an array of data sources. Learn more about support of multiple data sources in this article.
Template Formats, Elements and Syntax
Template Document Formats
Word Processing Document Formats
Word Processing Document formats including Microsoft Word Document and OpenOffice document formats are supported. For more details, please visit Support for Word Processing Document Formats.
Spreadsheet Document Formats
Spreadsheet Document formats including Microsoft Excel Workbook and OpenOffice spreadsheet document formats are supported. For more details, please visit Support for Spreadsheet Document Formats.
Presentation Document Formats
Presentation Document formats including Microsoft PowerPoint Presentation and OpenOffice presentation document formats are supported. For more details, please visit Support for Presentation Document Formats.
HTML and Plain Text document formats are supported by the GroupDocs.Assembly API. More Document formats including PDF, Epub and XPS document formats will be supported in the future releases. For more details, please visit Support for more Document Formats.
Dynamic Merging of Table Cells
You can merge table cells with equal textual contents within your reports dynamically using cellMerge tag. For the detail, please visit Merging Table Cells Dynamically.
Textual Comments within Template Syntax Tags
An optional comment providing a human-readable explanation ignored by the engine
Repeated Blocks (including list items and table rows)
Supported
Conditional Blocks
Supported (including list items and table rows)
Pivot Tables
To be supported
Images
Supported
Charts
Supported
Barcodes (through barcode fonts)
Supported
Bound Form Controls
To be supported
Hyperlinks to URI or Bookmarks
Supported
Template Syntax Formats for Expression Results
Specifying String Formats
API provides a useful feature to format strings in template syntax. String formatting such as upper, lower, capital, etc.
String Format
Description
lower
Converts a string to lower case (“the string”)
upper
Converts a string to upper case (“THE STRING”)
caps
Capitalizes a first letter of every word in a string (“The String”)
firstCap
Capitalizes the first letter of the first word in a string (“The string”)
Specifying Numeric Formats
Using GroupDocs.Assembly for .NET user can also do numeric formatting in template syntax. Numeric formatting such as ordinal, cardinal, alphabetic, etc.
Number Format
Description
alphabetic
Formats an integer number as an upper-case letter (A, B, C, …)
roman
Formats an integer number as an upper-case Roman numeral (I, II, III, …)
ordinal
Appends an ordinal suffix to an integer number (1st, 2nd, 3rd, …)
ordinalText
Converts an integer number to its ordinal text representation (First, Second, Third, …)
cardinal
Converts an integer number to its text representation (One, Two, Three, …)
hex
Formats an integer number as hexadecimal (8, 9, A, B, C, D, E, F, 10, 11, …)
arabicDash
Encloses an integer number with dashes (- 1 -, - 2 -, - 3 -, …)
Variables in Template Documents
API permits users to define variables in template documents as follows:
Aside this, you can use the HTML style attribute to achieve this.
Setting Email Message Attributes Dynamically
In addition to an email message body, you can use GroupDocs.Assembly to set the following email message attributes dynamically using the same template syntax:
Subject
From
To
CC
BCC
For example, given that recipients is an enumeration of strings “Named Recipient <named@example.com>” and “unnamed@example.com”, you can use the following template to set the To attribute for an email message.
<<foreach[rinrecipients]>><<[r]>>;<</foreach>>
During runtime, the To attribute is set to the following value then.
GroupDocs.Assembly enables you to build contents of documents attached to email messages dynamically. To do this, attach template documents (of file formats supported by GroupDocs.Assembly) to your template email message. Then, while assembling the email message, the engine assembles the attached documents as well using the same data sources.
Ability to Update Fields
API permits users to update fields while assembling Word Processing documents.
Ability to Calculate Formulas
API allows users to calculate formula while assembling Spreadsheet documents.
GroupDocs.Assembly provides a powerful feature to change the target file format of an assembled document using file extension or explicit specification.
Loading HTML and Saving To HTML with External Resource Files
Load template documents from html with resources and save assembled Word, Excel, PowerPoint & emails to html with resources. Please visit the following articles for the detail:
The GroupDocs.Assembly engine allows restart list numbering within your documents dynamically using «restartNum» tags. In particular, this feature is useful when working with a nested numbered list within a data band. Please visit this article for more details
Metered Licensing
The GroupDocs.Assembly.Metered public class has been added to provide metered licensing. This feature is supported in GroupDocs.Assembly for .NET 16.12.0.
Was this page helpful?
Any additional feedback you'd like to share with us?
Please tell us how we can improve this page.
Thank you for your feedback!
We value your opinion. Your feedback will help us improve our documentation.