Nabla.Export.Common 8.0.4

Weasel.Export

Небольшая библиотека для быстрого экспорта простых таблиц в формате .xlsx

Концепция

Библиотека построена на концепциях полиморфизма и наследования - заготовлено несколько паттернов экспорта, в которых некоторые механики Вы можете переопределять под свои кейсы.

Это база (знать надо)

  • Основной класс - StandartRow. Именно с ним придётся работать большую часть времени. Он содержить 2 основных компонента, которые опиысвают вашу строку:
    • Cells - Массив данных строки (содержание ячеек)
    • Color - Цвет строки

Интерфейсы построения заголовков:

  • IStandartHeaderExporter Самый простой вариант создания заголовка - переопределите метод GetHeader(). Как результат верните массив строк с текстами заголовков таблицы.
  • ICustomHeaderExporter<T> Для чуть более сложных (в плане логики) таблиц - переопределите метод GetHeader(T model). В отличие от прошлого случая теперь для создания заголовка можно использовать дополнительные данные. Вернуть данные нужно в том же формате.

Интерфейсы построения строк:

  • IStandartRowExporter<T> Опять же самый базовый вариант - просто опишите как преобразовывать ваш объект типа T в массив типа object?[]. Кроме того Вам доступен параметр ref int counter - это счётчик строк который никак не влияет на механики записи в таблицу. Отсчёт идёт от 1 до N, где N - размер коллекции, которую передадите в экспортер. Счётчик инкрементируется самостоятельно (при использовании абстрактных классов - об этом далее).
  • IOneToManyRowExporter<T> Эта схема экспорта строк нужна для случаев когда Ваш объект не всегда представляет только 1 строчку. Логика примерно та же, только теперь надо преобразовать по схеме 1 ко многим, то есть из 1 объекта Вашего типа T в коллекцию StandartRow.
  • IManyToOneRowExporter<T> Здесь обратная ситуация - надо преобразовать из коллекции объектов типа T в 1 StandartRow Конкретный кейс - суммирующая строчка в конце таблицы.

Готовые экспортёры

Используя вышеперечисленные интерфейсы Вы можете самостоятельно создавать достаточно однотипные и понятные инструементы экспорта.

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

  • StandartExporter<T> - потребуется переопределить
    • IStandartHeaderExporter - для заголовка,
    • IStandartRowExporter<T> - для строк таблицы.
  • OneToManyExporter<T> - потребуется переопределить
    • IStandartHeaderExporter - для заголовка,
    • IOneToManyRowExporter<T> - для строк таблицы.
  • AdditionalOnEndExporter - потребуется переопределить
    • IStandartHeaderExporter - для заголовка,
    • IStandartRowExporter<T> - для строк таблицы,
    • IManyToOneRowExporter<T> - для последней суммирующей строки.

No packages depend on Nabla.Export.Common.

Dependency update

.NET 8.0

Version Downloads Last updated
8.1.0 5 24.11.2025
8.0.6 24 08.07.2025
8.0.5 8 08.07.2025
8.0.4 7 08.07.2025
8.0.1.4 5 08.07.2025
8.0.1.3 25 05.10.2024
8.0.1.2 39 05.04.2024
8.0.1.1 14 29.02.2024
8.0.1 13 29.02.2024
8.0.0 19 09.02.2024