Нажимая кнопку «Отправить», вы принимаете правилами обработки персональных данных
Заявка отправлена

Спасибо за проявленный интерес к нашей компании, специалист свяжется с вами в ближайшее время

Услуги
Веб-разработка
Разработка мобильных приложений
Автоматизация бизнеса
UX/UI дизайн
Техподдержка интернет-проектов 24/7 по SLA
Digital-продвижение
Обработка данных
Наша работа
Кейсы
Нажимая кнопку «Отправить», вы принимаете правилами обработки персональных данных
Заявка отправлена

Спасибо за проявленный интерес к нашей компании, специалист свяжется с вами в ближайшее время

Отказ от DevExpress Reports: переход на собственную систему отчетности

< Все публикации
ноябрь 2025 ~ 6 минИсточник Хабр
Леонид Кохановский

Проблема ухода DX и потери инструмента для создания отчетов

Всем привет! Меня зовут Леонид, я разработчик компании DD Planet.

Как мы все прекрасно понимаем, ни один бизнес-проект немыслим без разного рода отчетов. Быстрота и удобство их создания зачастую критично важны.

В нашей компании мы долгое время использовали инструмент DevExpress Reports. Однако после ухода DX с отечественного рынка остро встал вопрос о пересмотре архитектуры формирования отчетов - особенно тех, что создавались с помощью визуального дизайнера форм.

1.jpeg

Как же быть теперь? Перед тем как делать обзор альтернатив, сразу признаем, что визуальный дизайнер заменить будет сложно - это все равно что строить коттедж с нуля. Ни один здравомыслящий бизнес в это вкладываться не будет, если вам нужен результат здесь и сейчас. Поэтому данную опцию заместить, скорее всего, будет проблематично. Но паниковать не нужно - есть варианты, которые и в отсутствие дизайнера позволяют удобно и быстро создавать отчеты. Давайте их разберем, чтобы понять, как жить дальше.

Прежде всего отметим, что наиболее востребованных типов отчетов существует два: Excel и PDF. Далее рассмотрим существующие решения по каждому из них.

Краткий обзор лицензионных альтернатив для создания отчетов

Сначала кратко перечислим возможные платные альтернативы для создания отчетов:

  • FastReports — мощный инструмент для генерации отчетов, поддерживает разные платформы (Web, WinForms, WPF и др.) — Официальный сайт
  • StimulSoft — генератор отчетов под ASP.NET, .NET Core, JS, Angular, Blazor, PhP и др. — Официальный сайт
  • Telerik UI for.NET (Community Edition) — содержит некоторые компоненты для экспорта, в том числе PDF. Официальный сайт
  • Microsoft RDLC Report Designer — дизайнер отчетов от Microsoft, является бесплатным, но для полноценного использования все равно потребуется лицензионная версия VisualStudio — Microsoft marketplace

Тем не менее очевидно, что в современных реалиях, когда в любой момент могут возникнуть сложности с оплатой любого сервиса, предпочтительными являются опенсорсные решения. На них остановимся более подробно ниже.

Альтернативы для создания отчетов Excel

Существует несколько бесплатных библиотек, которые позволяют работать с Excel в .NET - импортировать и экспортировать данные, менять их и т.п.:

1. NPOI - отличная альтернатива для работы с XLSX/XLS без установки Office.

Плюсы:

  • Хорошо справляется с объемами данных в сотни тысяч строк;
  • Имеет понятный API, с помощью которого можно, например, получить информацию об иерархичности документа, стилях ячеек и т. д;
  • Поддержка старых версий Excel.

Недостаток - инструментарий по кастомизации документа ограничен - например, NPOI не умеет перетаскивать диапазоны ячеек, что может быть актуально в тех или иных задачах (если есть какой-то шаблонный файл и необходимо его видоизменить в соответствии с настройками пользователя).

Однако с созданием простых задач библиотека справляется хорошо. Я использовал ее на одном из проектов для экспорта данных и создания типовых отчетов. GitHub репозиторий

2. DocumentFormat.OpenXml - низкоуровневая, но мощная библиотека от Microsoft. По характеристикам близка к NPOI, хорошо работает с сопоставимыми объемами данных, но могут быть проблемы при импорте из файлов старых версий Excel - GitHub репозиторий

3. ClosedXml - простая и удобная обертка над OpenXml SDK - GitHub репозиторий. Эту библиотеку мы использовали на одном из проектов, где нужно было обработать файлы разной структуры.

4. LibreOffice - мощный офисный пакет, полностью совместимый с 32/64-битными системами. Переведен более чем на 30 языков мира. Основной плюс - кроссплатформенность: поддерживает большинство популярных операционных систем, включая GNU/Linux, Microsoft Windows и Mac OS X.

Все эти примеры - то, чем можно пользоваться бесплатно. Есть и более мощные инструменты, например, Aspose, который позволяет создавать отчеты практически любой сложности, но он требует коммерческую лицензию, а в настоящее время на территории РФ нет возможности оплачивать иностранное ПО.

Сравнительные характеристики, основные плюсы и минусы этих библиотек для наглядности приведем в виде таблицы, с нашей субъективной оценкой каждого показателя по шкале от 0 до 5 и с признаком OpenSource (да/нет):

Frame 16.png

Альтернативы для создания отчетов PDF

Здесь также есть выбор бесплатных библиотек, которые закрывают основные потребности в создании отчетов:

1. iText7 - мощная библиотека с широкими возможностями, однако требует внимания к лицензированию (есть AGPL). GitHub репозиторий

2. QuestPDF - современная и простая в использовании библиотека с открытым исходным кодом. GitHub репозиторий

3. DinkToPdf - обертка над wkhtmltopdf, позволяет генерировать PDF из HTML. GitHub репозиторий

4. PuppeteerSharp - бесплатная библиотека, предоставляющая API для контроля браузера. Может быть использована для преобразования HTML-текста в PDF. GitHub репозиторий

Пример создания PDF-отчета

Остановимся подробнее на PuppeteerSharp и рассмотрим, как на практике можно создать PDF-отчет с его помощью. Задача по сути разбивается на 2 этапа - сначала нам необходимо сгенерировать HTML-документ, а затем конвертировать его в PDF-файл.

Для решения первой задачи хорошо подходит технология SSR (Server-Side Rendering). Она позволяет генерировать HTML-код страницы на сервере при запросе пользователя. Реализация SSR с React и Node.js включает создание серверного кода на Express, который использует ReactDOMServer.renderToString() для преобразования React-компонента в HTML-строку, а затем вставляет ее в шаблон страницы:

2.png

Далее необходимо конвертировать ее в PDF-формат, т.е. создать сам отчет. Здесь нам поможет PuppeteerSharp. Вот простейший пример преобразования html to pdf:

3.png

Заключение

Как видно из обзора, есть достаточное количество инструментов, которые позволяют воспроизвести основные функции DevExpress по экспорту отчетов, сохраняя при этом полный контроль над процессом. Единственная безальтернативная по сути вещь - визуальный дизайнер. Но его потеря это не повод рвать на себе волосы, как уже было сказано в начале - мы адаптировались к новым реалиям через новые процессы, подходы и решения. Отчеты по-прежнему создаются качественно, масштабируемо и с контролем версий, пусть и с иной степенью вовлечения разработчиков. Во многом теперь требуется более глубокое погружение в код, чуть больше трудозатрат - опять-таки ввиду отсутствия дизайнера. С другой стороны, потребность в квалифицированных разработчиках была и раньше: при работе с дизайнером тоже порой приходилось долго разбираться, как устроен компонент и какие опции он предоставляет. Сейчас потребность в разработчике остается актуальной, так что в этом плане мало что поменялось.

Связаться с нами
Форматы: jpg, png, xls, xlsx, doc, docx, pdf
Размер до 5 МБ
Нажимая кнопку «Отправить», вы принимаете правилами обработки персональных данных
Заявка отправлена

Спасибо за проявленный интерес к нашей компании, специалист свяжется с вами в ближайшее время