Pie Chart in Email Document

Note
In this article, we will use GroupDocs.Assembly to generate a Pie Chart report in Presentation Document format.
Note
The example reads the shop data described in The Business Layer.

Pie Chart in Email Document

Creating a Pie Chart

Please follow below steps to create Pie Chart in MS Outlook 2013:

  1. Create a new Email.
  2. Click the “Insert” tab, and then click “Chart” in the illustrations group to open the “Insert Chart” dialog box.
  3. Select “Pie”.
  4. Preview “Pie” and press OK to insert the chart and Worksheet template to your email.
  5. Edit the Worksheet with your data to update the chart.

Reporting Requirement

As a report developer, you are required to share managers’ contract prices dynamically with the following key requirements:

  • The report must be in .eml or .msg format.
  • It must add email recipient, CSS and subject of the email.
  • The report must show information on a Pie Chart.
  • It must indicate customer name with value (price of the order).

Adding Syntax to be evaluated by GroupDocs.Assembly Engine

Chart Title
Total Order Price<<foreach [in
customers]>><<x [CustomerName]>>
Chart Data (Excel)

Total Order Price<<y [Order.Sum(c => c.Price)]>>

8.2

3.2

1.4

1.2

Tip
For detailed technical information about syntax, expressions and report generation by the engine, please visit: Working with GroupDocs.Assembly Engine.

Download Pie Chart Template

Please download the sample Pie Chart document we used in this article:

Generating The Report

import json
from datetime import datetime

from groupdocs.assembly import DataSourceInfo, DocumentAssembler

def parse_dates(item):
    # JSON has no dates: turn the order dates into datetime objects for the template
    for key in ("OrderDate", "ShippingDate"):
        if key in item:
            item[key] = datetime.strptime(item[key], "%Y-%m-%dT%H:%M:%S")
    return item

with open("customers.json", encoding="utf-8") as f:
    customers = json.load(f, object_hook=parse_dates)

assembler = DocumentAssembler()
assembler.assemble_document("pie-chart.msg", "pie-chart-report.msg", [
    DataSourceInfo(customers, "customers"),
    DataSourceInfo("Harbor Lane Provisions <orders@harborlane.example>", "sender"),
    DataSourceInfo(["Quayside Bistro <orders@quaysidebistro.example>", "jonas.weber@harborlane.example"], "recipients"),
    DataSourceInfo("amara.osei@harborlane.example", "cc"),
    DataSourceInfo("Pie chart", "subject"),
])

The following sample file is used in this example: pie-chart.msg

The following sample file is used in this example: customers.json

Binary file (MSG, 62 KB)

Download full output

Close
Loading

Analyzing your prompt, please hold on...

An error occurred while retrieving the results. Please refresh the page and try again.