Report Micro – Exporting Visual Data as PowerPoint, PDF, and CSV

05/19/2025
3 minute read

Goal

This project aimed to provide users of the Sentimate platform with the ability to export product and category analytics—as seen on the website—into PowerPoint presentations, PDF documents, and CSV files. The generated files had to precisely match the UI’s displayed data, including dynamic charts, tables, and images.

Key Milestones

  1. Developed a proof-of-concept (POC) to validate chart rendering and export feasibility.
  2. Stage 1 – Export product-specific charts into a PowerPoint file.
  3. Stage 2 – Export category-level analytics.
  4. Stage 3 – Support exporting individual charts and tables.
  5. Enforced authentication and authorization rules for export functionality.
  6. Stage 4 – Added support for CSV exports.
  7. Stage 5 – Added support for PDF exports.

Technologies Used

  • Architecture: New microservice based on Clean Architecture principles
  • Backend: .NET 6, Syncfusion.Presentation.Net.Core
  • Frontend: Angular
  • Cloud: AWS Blob Storage
  • Images: SkiaSharp for image rendering and resizing
  • Assets: PowerPoint design templates provided by the in-house designer

Implementation Breakdown

Client-Side

  • Created a dedicated Angular service to aggregate all chart data from observables.
  • Implemented this service across chart/table components.
  • Used ngAfterContentInit lifecycle hook to ensure all visual data was collected prior to export.

Server-Side

  • Developed a new microservice in .NET 6, adhering to Clean Architecture.
  • Modeled each exportable component (chart/table/slide) using strongly typed classes.
  • Built page-level services for structured export logic.
  • Integrated AWS blob storage access to manage dynamic PowerPoint templates.
  • Developed functionality to retrieve product images from external sources and embed them in exports.

Project Highlights & Challenges

Syncfusion Package Limitations

Some chart types required by the UI were not yet supported in the version of Syncfusion.Presentation.Net.Core used. I worked closely with Syncfusion’s support team to either patch limitations or find effective workarounds.

PowerPoint Template Handling

Frequent updates to the slide templates made Git-based versioning impractical.

Solution

  • Moved template storage to AWS Blob Storage, with environment-specific variants.
  • Added CI logic to sync templates from staging to production via command-line automation.

Dynamic Product Images

Each report slide required insertion of product images from external sources, while maintaining Docker/Linux compatibility.

Solution

  • Used SkiaSharp to fetch, resize, and embed images:
    1. On overview slides
    2. Inside dynamic tables

This project highlights my ability to manage full-stack requirements, integrate cloud services, and produce pixel-perfect document exports from web interfaces—all while working within enterprise-grade architecture and third-party package constraints.

An error has occurred. This application may no longer respond until reloaded. Reload x