Skip to content

ariana-report

Banded reports for React and Vue. Design a report visually, fill it with JSON data, and export it to PDF or Excel. No server needed.

Banded layout

Report and page headers and footers, data bands, groups with subtotals and master-detail, with automatic pagination.

Plain JSON in, plain JSON out

A report is a JSON template. Data is any JSON object. Store templates in your database or in Git.

Visual designer

Drag and drop, snapping, field binding, expression checking, undo and redo, a live preview, and a large text editor.

PDF, Excel and print

Vector PDF and typed Excel cells from the same layout the viewer shows. Generated in the browser.

React and Vue

The same features, props and labels in both. A framework-free core is available for everything else.

Safe expressions

Templates use JavaScript expressions that run in a sandboxed interpreter. No eval, no globals.

Themeable

Follows your app theme through CSS variables. One call converts a Material UI theme, dark mode included.

Localized

Number and date formatting per locale, and a fully translated, right-to-left user interface. Persian is built in.

This report is generated in your browser from a JSON template and JSON data. Scroll through the pages, zoom, or download it as PDF or Excel. Switch between React and Vue to see the code for each.

viewer-grouping.tsx
import { ReportViewer } from '@ariana-reports/react';
import { salesData, salesTemplate } from './report-data';
export default function ViewerGrouping() {
return <ReportViewer template={salesTemplate} data={salesData} zoomMode="fitWidth" />;
}