Open XML · REST API · C# · .NET 8

ОфисГен

Генерация Open XML документов по XML-схемам
Любые данные в XML → любой шаблон → готовый документ за секунды
Автоматическая сборка офисных документов (DOCX, XLSX, в перспективе ODT/ODS) из ZIP-пакета с шаблоном, схемой и данными.

Ключевые возможности

XML-схема с привязками

Декларативное описание отчёта без программирования. Атрибуты binding, format, type, multiply.

20+ штрихкодов

QR, Code128, Data Matrix, PDF417, Aztec, EAN, UPC и другие. Настраиваемый цвет, размер, коррекция ошибок.

Авто-репликация строк

Повторяющиеся блоки данных тиражируются автоматически. Сдвиг формул в Excel, клонирование строк в Word.

Форматы дат и чисел

Локализация через атрибут format. Поддержка CultureInfo для чисел, валют, дат.

Open XML стандарт

Совместимость с Microsoft Word, Excel, LibreOffice, Google Docs, а также потенциально ODT/ODS.

REST API

Интеграция с любыми системами через HTTP. Простой ZIP-пакет на входе — готовый документ на выходе.

Как это работает

1

Схема + шаблон

Опишите данные в XSD (атрибуты binding/format). Создайте шаблон Word/Excel с псевдонимами.

2

Упакуйте ZIP

template.docx/xlsx, schema.xml, data.xml, manifest.json — всё в один архив.

3

Отправьте в API

POST /Wordprocessing или /Spreadsheet → получите готовый документ.

schema.xml (XSD + tpl:binding)
<xs:element name="Amount" type="xs:decimal" 
            tpl:binding="SumCell" 
            tpl:format="N2" 
            tpl:multiply="true"/>
manifest.json
{
  "template": "./template.docx",
  "schema": "./schema.xml",
  "data": "./data.xml"
}

Типы данных из коробки

ТипXML / XSD соответствие.NET тип (C#)
STRINGstring, token, normalizedStringSystem.String
INT / UINTint, integer / unsignedIntInt32 / UInt32
DOUBLE / DECIMALdouble, float / decimalDouble / Decimal
DATE / TIME / DATETIMExs:date, xs:time, xs:dateTimeDateOnly / TimeOnly / DateTime
BOOLEANxs:booleanBoolean
DURATIONxs:durationTimeSpan
BARCODEtpl:type="BARCODE"генерация PNG

Форматы вывода

  • application/vnd.openxmlformats-officedocument.wordprocessingml.document (.docx)
  • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (.xlsx)
  • В перспективе — ODT, ODS (Open Document Format) на базе единой Open XML архитектуры

Технологический стек

C# / .NET 8Open XML SDK (ECMA-376)ZXing.NetSkiaSharpASP.NET Core Web API

Ключевые сторонние библиотеки

DocumentFormat.OpenXml
Open XML SDK
MIT
ZXing.Net
Генерация штрихкодов
Apache 2.0
SkiaSharp
2D графика для .NET
MIT
Swashbuckle
Swagger UI
MIT
📘

Полная пользовательская документация

Настройка шаблонов, примеры схем, полный список атрибутов, форматы штрихкодов, репликация данных и многое другое.

Кому подходит решение

Бизнес-отчёты
финансовые, складские, производственные
Договоры и счета
автозаполнение шаблонов
Лабораторные заключения
медицинские и аналитические отчёты
Любые системы
печатные формы из XML через REST API