Awesome
MaltReport
PLEASE NOTE:
- At this very moment I'm rewriting the old library, the next coming v3.0 will be an incompatible version;
- I'm also working on a additional commerce library for the docx/xlsx support, closed-source library for MS-Office seems fair;
- The super old and buggy OfficeML support will be dropped, the OfficeML format is a legacy from 2003;
- More real world unit tests, more documents;
- Check
dev
branch to track the progress of the incoming v3 series.
MaltReport is an OpenDocument/OfficeOpenXML powered document template engine for .NET and Mono, it is inspired by the excellent Relatorio Project.
There is a briefly introduction in Chinese: MaltReport2 中文使用简介
MaltReport DO NOT REQUIRES MS-Office or LibreOffice to generate document. Instead MaltReport manipulates ODT/ODS/XLS/DOC file by itself, so it could be fast & reliable.
Documents
Getting Started
Prerequisites
- Visual Studio 2017: This project is written in C# 7.0 using Microsoft Visual Studio 2017 Community Edition.
Supported Platform
- .NET Framework 4.6.1
- .NET Standard 1.6+
Installation
MaltReport can be installed from NuGet.
Demo & Usage:
Step 1: Organize your data into Context
var employees = new Employee[]
{
new Employee{ Name = "Micheal Scott", JobTitle = "Branch Manager" },
new Employee{ Name = "Pam Beesly", JobTitle = "Office Administrator" },
new Employee{ Name = "Jim Halpert", JobTitle = "Salesman" },
new Employee{ Name = "Dwight Schrute", JobTitle = "Salesman" },
new Employee{ Name = "Andy Bernard", JobTitle = "Salesman" },
};
var image = new ImageBlob("jpeg", File.ReadAllBytes("Image.jpeg"));
var data = new Dictionary<string, object>()
{
{ "employees", employees },
{ "image", image },
};
var context = new TemplateContext(data);
Step 2: Prepare your template
Step 3: Load & render your template
using (var stream = File.OpenRead("EmployeesTemplate.odt"))
{
var odt = OdfDocument.LoadFrom(stream);
var template = new OdtTemplate(odt);
var result = template.Render(context);
var desktopDir = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
var outputFile = Path.Combine(desktopDir, "generated.odt");
result.Save(outputFile);
}
Step 4: Check the generated document out:
License
MaltReport is licensed in the MIT license.
Author: Wei "oldrev" Li oldrev@gmail.com
- Copyright (C) 2009 Wei "oldrev" Li
- Copyright (C) 2010-2016 Sandwych Consulting LLC.
- Copyright (C) 2017-TODAY Binary Stars Technologies LLC. & Contributors