CK-MultiPlan is an innovative way to produce Office reports that is both simple for the user and painless for the developer.
A software component that each and every architect or decision maker should be aware of!
Editing a template is done directly in the document editor (Microsoft Word, Excel, etc.) without any third party tools: a template is a normal document that contains sample data and tags that describe what and where data should be included.
Anyone who knows how to edit a document can turn it into a template in a few minutes!
Did you and your customers already write report documents (using Word, Excel, etc.)? That investment won't be lost: you only need to turn them into CK-MultiPlan templates, then you'll be able to use them directly in your report generation operations.
Most of the available solutions require you to either rewrite your templates from scratch, or to order customized development, so that your reports can be generated -- sometimes both. CK-MultiPlan allows you not to have any customized development for every template: integration development will be, in most cases, done once and for all.
Add the CK.MultiPlan NuGet package to your existing .NET solutions, and create your documents in minutes thanks to already existing feeder objects that know how to read data.
// Load the template, feed it with data and save. using( var template = MultiPlan.LoadTemplate( "Template.docx", LogFilter.Debug ) ) { var feeder = new XmlDataFeeder(); feeder.Feed( "Data.xml", template ); template.Save( "GeneratedDocument.docx", ExportType.Docx ); }
This is a very simple piece of code but it actually covers 90% of our needs. Of course, more complex things can be done such as discovering what the template expects (it can be as simple as the name of a “DataSource”) and then choose or build a data to satisfy it… and, once done, this will happily run against any kind of templates (Excel, Word, etc.).
You know that reporting solutions are often a mess. CK-MultiPlan not only eases integration but also maximizes the reuse of existing data (existing object models, XML data sources, Web Services) against different presentation technologies and templates (possibly edited by the end-user).
As a developer, focus on the Data you need or want to expose.
As a user, focus on how you want it displayed.
As an architect, focus on how your users will manage their templates and how your developer will produce the Data.
And relax.
The design of CK-MultiPlan relies on the well-known principle of separating the Data from the View: the templates (the View) contains Tags that identify “pieces of Data” as simple dotted names (like in “Customer.Person.FullName”).
Actual Tags definition depends on the underlying technology: we choose the best, easiest, and most powerful ways to define them for each presentation technology. For instance, in Word we rely on the Word feature called Structured Document Tags (SDTs), whereas in Excel (which does not feature SDTs), Tags are depicted as text tags, which can be set at multiple places in the document (even cell comments can contain Tags).
The dotted names describe the data expected by the template. This is independent of the data that will actually be fed to produce the final document: the exact same Data (coming from a database for instance) can be used to feed an Excel document and a Word document.
Fully managed .NET 4.5 codebase.
Usage and generation do not depend on any Office installation
Currently implemented template engines: