Stimulsoft Reports
Генератор отчетов для React
Кроссплатформенный набор инструментов для создания отчётов, разработанный для использования совместно с библиотекой React. Наше решение совместимо с React 16.8 и выше, включая актуальную версию React, и содержит всё необходимое для создания, редактирования, просмотра и экспорта отчётов. Серверная сторона продукта использует ASP.NET MVC и .NET.Профессиональная отчётность
Вы можете создавать профессиональные отчёты любой сложности быстро, интуитивно и с мгновенным предварительным просмотром результатов.Loading...
Как установить клиентскую часть
Быстрый старт за пару минут с использованием всего нескольких строк кода. Скачайте npm-пакет и легко интегрируйте генератор отчетов для React в ваше приложение. Создавайте, просматривайте и экспортируйте интерактивные отчеты с помощью мощного дизайнера отчетов и компонентов визуализации данных. bash
npm install stimulsoft-viewer-react
Как установить серверную часть
Быстрая настройка серверной стороны для вашего приложения. Установите нужный пакет и добавьте несколько строк кода для настройки контроллера. Серверная часть построена на ASP.NET MVC, .NET или Java и обеспечивает полную функциональность движка отчетов. bash
dotnet add package Stimulsoft.Reports.React
Просмотр отчётов
Просмотр готовых отчётов в вашем приложении. Встроенный React вьювер отчетов обеспечивает быстрое и удобное отображение отчётов непосредственно в веб-приложении. Используйте интерактивную навигацию, поиск, масштабирование и экспорт отчётов для комфортной работы с данными. App.tsx
import React from 'react';
import { StimulsoftViewer } from 'stimulsoft-viewer-react';
export const App: React.FC = () => {
return (
<StimulsoftViewer
requestUrl="/Viewer/{action}"
action="InitViewer"
height="100vh"
/>
)
}
Экспорт
Экспортируйте отчёты в PDF, Excel, Word, HTML, CSV, XML, JSON, RTF, OpenDocument, текстовые файлы и форматы изображений, включая PNG, JPEG, BMP, TIFF и SVG. Используйте компоненты отчётности React для создания, просмотра и экспорта профессиональных отчётов в любых бизнес-приложениях. App.tsx
import React, { useRef } from 'react';
import { StimulsoftViewer, StimulsoftViewerHandle }
from 'stimulsoft-viewer-react';
export const App: React.FC = () => {
const viewerRef = useRef<StimulsoftViewerHandle>(null);
return (
<div>
<input
type="button"
onClick={() => { if (viewerRef.current)
viewerRef.current.export('Pdf',
{ ImageResolution: 200 }); }}
value="Export to PDF"
/>
</div>
);
};
Серверная обработка отчётов на ASP.NET или Java
Серверная часть Stimulsoft для React построена на платформе ASP.NET или Java и работает в Windows, macOS и Linux. Все ресурсоёмкие задачи – загрузка шаблонов, рендеринг, вычисления и экспорт в различные форматы — вынесены на сервер, что разгружает клиентскую часть и повышает общую производительность приложения. Решение поддерживает .NET 6, .NET 8, .NET 10 и все последующие версии, а также Java 8+, включая приложения на чистой Java и с использованием Spring Boot, обеспечивая стабильную работу в современных корпоративных средах. ViewerController.cs
using Microsoft.AspNetCore.Mvc;
using Stimulsoft.Report;
using Stimulsoft.Report.React;
namespace Integrating_the_Report_Viewer_into_an_Application.Controllers
{
[Controller]
public class ViewerController : Controller
{
static ViewerController()
{
// How to Activate
//Stimulsoft.Base.StiLicense.Key = "6vJhGtLLLz2GNviWmUTrhSqnO...";
//Stimulsoft.Base.StiLicense.LoadFromFile("license.key");
//Stimulsoft.Base.StiLicense.LoadFromStream(stream);
}
[HttpPost]
public IActionResult InitViewer()
{
var requestParams = StiReactViewer.GetRequestParams(this);
var options = new StiReactViewerOptions();
options.Actions.GetReport = "GetReport";
options.Actions.ViewerEvent = "ViewerEvent";
options.Toolbar.ShowPinToolbarButton = false;
options.Appearance.ScrollbarsMode = true;
return StiReactViewer.ViewerDataResult(requestParams, options);
}
[HttpPost]
public IActionResult GetReport()
{
var report = StiReport.CreateNewReport();
var path = StiReactHelper.MapPath(this, $"Reports/MasterDetail.mrt");
report.Load(path);
return StiReactViewer.GetReportResult(this, report);
}
[HttpPost]
public IActionResult ViewerEvent()
{
return StiReactViewer.ViewerEventResult(this);
}
}
}
package com.stimulsoft.demo;
import java.io.File;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.stimulsoft.base.json.JSONObject;
import com.stimulsoft.base.mail.StiMailProperties;
import com.stimulsoft.report.StiReport;
import com.stimulsoft.report.StiSerializeManager;
import com.stimulsoft.web.proxyee.StiHttpServletRequest;
import com.stimulsoft.web.proxyee.StiHttpServletResponse;
import com.stimulsoft.webviewer.StiReactViewerHandler;
import com.stimulsoft.webviewer.StiWebViewerOptions;
import com.stimulsoft.webviewer.servlet.StiWebViewerActionServletHelper;
public class StiReactViewerActionServlet extends HttpServlet implements StiReactViewerHandler {
private static final long serialVersionUID = 2759116620736251447L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processing(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processing(request, response);
}
protected void processing(HttpServletRequest request, HttpServletResponse response) {
StiWebViewerActionServletHelper.processing(new StiHttpServletRequest(request, this), new StiHttpServletResponse(response));
}
public StiWebViewerOptions getOptions(StiHttpServletRequest request, StiHttpServletResponse response) {
StiWebViewerOptions options = new StiWebViewerOptions();
options.getAppearance().setScrollbarsMode(true);
return options;
}
public StiReport getReport(StiHttpServletRequest request, StiHttpServletResponse response, JSONObject viewerProperties) {
try {
File reportFile = new File(request.getSession().getServletContext().getRealPath("reports/" + viewerProperties.getString("reportName")));
StiReport report = StiSerializeManager.deserializeReport(reportFile);
report.render();
return report;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public StiMailProperties getMailProperties(StiHttpServletRequest request, StiHttpServletResponse response) {
StiMailProperties mailProperties = new StiMailProperties();
// fill necessary fields
return mailProperties;
}
}
package com.stimulsoft.demo;
import java.io.File;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.core.io.ClassPathResource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.stimulsoft.base.json.JSONObject;
import com.stimulsoft.base.mail.StiMailProperties;
import com.stimulsoft.report.StiReport;
import com.stimulsoft.report.StiSerializeManager;
import com.stimulsoft.web.proxyee.StiHttpServletRequest;
import com.stimulsoft.web.proxyee.StiHttpServletResponse;
import com.stimulsoft.webviewer.StiReactViewerHandler;
import com.stimulsoft.webviewer.StiWebViewerOptions;
import com.stimulsoft.webviewer.servlet.StiWebViewerActionServletHelper;
@RestController
public class StiViewerController implements StiReactViewerHandler {
@RequestMapping("/webviewer/**")
public void StiWebViewer(HttpServletRequest request, HttpServletResponse response) {
StiWebViewerActionServletHelper.processing(new StiHttpServletRequest(request, this), new StiHttpServletResponse(response));
}
public StiWebViewerOptions getOptions(StiHttpServletRequest request, StiHttpServletResponse response) {
StiWebViewerOptions options = new StiWebViewerOptions();
options.getAppearance().setScrollbarsMode(true);
return options;
}
public StiReport getReport(StiHttpServletRequest request, StiHttpServletResponse response, JSONObject viewerProperties) {
try {
File reportFile = new ClassPathResource(viewerProperties.getString("reportName")).getFile();
StiReport report = StiSerializeManager.deserializeReport(reportFile);
report.render();
return report;
} catch (Exception e) {
return null;
}
}
public StiMailProperties getMailProperties(StiHttpServletRequest request, StiHttpServletResponse response) {
StiMailProperties mailProperties = new StiMailProperties();
// fill necessary fields
return mailProperties;
}
}

Ваш главный инструмент – дизайнер отчетов, дашбордов и форм
Дизайнер Stimulsoft — это центральный инструмент экосистемы для создания профессиональных отчётов, дашбордов, PDF-форм, и визуализации данных без лишних сложностей. Всё необходимое: подключение данных, вычисления, группировки, визуальное оформление — собрано в едином рабочем пространстве.Интерфейс доступен на 40 языках, работает на любой операционной системе и в браузере, что делает разработку отчётов удобной на любой платформе. Мастера быстрого старта и готовые шаблоны помогут вам сразу перейти от идеи к готовому документу, ускоряя создание интерактивных отчётов под любые бизнес-задачи.