client-excel-exporter
Reactive icon

Client Excel Exporter

version 1.0.0 (Compatible with OutSystems 11)
Uploaded
 on 19 Jan (15 hours ago)
 by 
0.0
 (0 ratings)
client-excel-exporter

Client Excel Exporter

Documentation
1.0.0

Overview

ClientExcelExporter is a client-side Excel report generator for OutSystems Reactive Applications, built on top of ExcelJS and executed entirely in the browser using JavaScript.
It converts JSON data into a professionally formatted Excel file, supporting branding, dynamic headers, automatic column detection, and performance-oriented client-side execution.

No server actions are required.


Key Features

  • 100% client-side execution (no server load)

  • Fast Excel generation using browser memory

  • JSON key-value input with automatic structure flattening

  • Automatic column detection and sizing

  • Optional logo insertion

  • Custom project name and report title

  • Date column auto-detection and formatting

  • Frozen header row and Excel filters

  • Alternating row styles for readability


Inputs

JSON (Text – Required)

JSON array containing the data to be exported.

Example

[ { "SupplierName": "ABC Ltd", "CreatedAt": "2025-01-10", "Address": { "City": "São Paulo", "Country": "Brazil" } } ]

Nested objects are automatically flattened into columns.


ProjectName (Text – Optional)

Displayed as the main header of the Excel file.


ExcelTitle (Text – Optional)

Displayed as a subtitle below the project name.


Filename (Text – Required)

Name of the generated Excel file (without .xlsx).


Logo (Binary / Base64 – Optional)

Company or project logo displayed at the top-left of the report.

Supported formats

  • PNG

Taking this list of products as example, when clicking on the Export Excel button, the export result is available the next image;


Output

  • Automatically downloads a .xlsx Excel file

  • Fully formatted and ready for business use


Data Processing Details

JSON Flattening

Nested objects are flattened using _ as separator:

{ "Address": { "City": "Rio", "Country": "BR" } }

Becomes:

Address_City Address_Country

Column Detection

  • All keys across all objects are collected

  • Columns are created dynamically

  • Missing values are handled gracefully


Column Width Inference

Column width is calculated based on:

  • Header text length

  • Sample data values (first 50 rows)

This ensures readability without manual configuration.


Date Column Detection

A column is automatically formatted as a date when:

  • The column name contains keywords like:
    date, created, updated, issued, delivery, etc.

  • Sample values match common date formats

Applied Excel format

mm/dd/yyyy

Styling and UX Enhancements

  • Bold and shaded header row

  • Alternating row background colors

  • Text wrapping enabled

  • Vertical and horizontal alignment

  • Thin row separators

  • Auto-filter enabled on header

  • Header row frozen for scrolling


Performance Notes

  • Entirely client-side

  • No round trips to the server

  • Best suited for small to medium datasets

  • Recommended logo size: < 500 KB


Limitations

  • ExcelJS supports only png and jpeg

  • Very large datasets may impact browser memory

  • SVG and WebP images are not supported


Typical Use Cases

  • Operational reports

  • Dashboards export

  • Administrative data extraction

  • Audit and compliance reports

  • Customer-facing Excel downloads


Compatibility

  • OutSystems Reactive Applications

  • Modern browsers (Chrome, Edge, Firefox)

  • No server actions required


Summary

ClientExcelExporter provides a fast, flexible, and enterprise-ready way to generate Excel reports directly in the browser, making it ideal for modern OutSystems applications that prioritize performance, scalability, and user experience.


Example of list to be exported:

Here is the final result.