Skip to content

An Universal Document Generator for .NET

License

Notifications You must be signed in to change notification settings

kdanielm/maltreport

This branch is 3 commits behind oldrev/maltreport:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5d7d6b1 · Apr 15, 2019
Dec 22, 2017
Jul 16, 2017
Apr 15, 2019
Oct 27, 2017
Apr 15, 2019
Apr 15, 2019
Jul 16, 2017
Jul 16, 2017
Dec 22, 2017
Apr 15, 2019
Jul 22, 2017
Apr 15, 2019
Dec 22, 2017
Feb 7, 2018
Apr 15, 2019

Repository files navigation

MaltReport

NuGet Stats Build status Build Status

MaltReport is an OpenDocument/OfficeOpenXML powered reporting 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

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:

Generated Document

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

CREDITS

About

An Universal Document Generator for .NET

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 93.8%
  • PowerShell 6.2%