Skip to main content

Вспомогательное ядро для построения отчетов на базе XLSX

Project description

report-core

CI pypi Supported Python versions

report-core - это вспомогательная Python-библиотека для построения отчетов в формате Excel (XLSX) для проекта, предоставляющая удобные инструменты для манипуляции данными..

Установка

pip install report-core

Основные компоненты

  • Service: Базовый класс для создания сервисов обработки данных и создания отчетов.
  • Book: Представляет книгу отчета Excel.
  • Sheet: Представляет лист Excel для создания новых листов отчета.
  • Cell: Представляет ячейку в листе Excel для создания новых ячеек отчета.
  • Comment: Представляет комментарий в листе Excel для ячеек.
  • readable: Модуль только для чтения листов и ячеек Excel.
    • Finder: Помощник для работы с несколькими листами и ячейками.
    • ReadableSheet: Представляет лист Excel для чтения существующих листов отчета.
    • ReadableCell: Представляет ячейку в листе Excel для чтения существующих ячеек отчета.
    • find_cell_by_coords: Поиск ячейки в листе Excel по координатам.
    • find_value_by_coords: Поиск значения в листе Excel по координатам.
    • find_cell_by_regex: Поиск ячейки в листе Excel по регулярному выражению
    • find_cell_by_str: Поиск ячейки в листе Excel по строке
    • find_cell_by_letter: Поиск ячейки в листе Excel по букве
    • find_cells_by_regex: Поиск ячеек в листе Excel по регулярному выражению
    • find_cells_by_str: Поиск ячеек в листе Excel по строке
    • find_cells_for_rows_by_regex: Поиск ячеек в листе Excel по регулярному выражению до определеной колонки
    • find_cells_for_cols_by_regex: Поиск ячеек в листе Excel по регулярному выражению до определеной строки
    • find_cells_multi_regex: Поиск ячеек в листе Excel по нескольким регулярным выражениям
    • find_cells_between_regex: Поиск ячеек в листе Excel между двумя регулярными выражениями
    • find_cells_range_rows: Поиск ячеек в листе Excel по диапазону строк
    • find_cells_range_cols: Поиск ячеек в листе Excel по диапазону столбцов
    • find_values_by_col_rows: Поиск значений ячеек в листе Excel по диапазону строк и столбца
    • find_values_by_row_cols: Поиск значений ячеек в листе Excel по диапазону столбцов и строки
  • column_number_to_letter: Функция для преобразования колонки с row в букву (1 -> A).
  • get_letter_coordinate: Функция для получения координаты ячейки в стиле A1.
  • DEFAULT_COLUMN_WIDTH: "Ширина колонки по умолчанию".
  • DEFAULT_ROW_HEIGHT: "Высота строки по умолчанию".

Возможности

  • Поиск листов по имени или шаблону
  • Поиск ячеек по значению, регулярному выражению или адресу
  • Манипуляция данными ячеек (установка значений, формул, форматов)
  • Получение информации о ячейках (тип данных, числовой формат, стиль)
  • Работа с датами и временем
  • Создание пользовательских сервисов и форматтеров для создания отчетов xlsx.

Пример использования

from report_core import Service
import time


class S10406(Service):
    def summary_0(self, sheets, **kwargs):
        sheet = self._add_sheet("Sheet1")

        print(sheet)

        for r in range(1, 6):
            for c in range(1, 6):
                cell = sheet.cell(r, c, f"Dynamic value: r{r}:c{c}")

                if r == 5 and c == 5:
                    cell.value = "100"
                    cell.formula = "SUM(A1:A5)"
                    cell.style = "Style A"

        print(sheet)

        cell = sheet.find_cell_by_letter("E5")
        if cell:
            print(cell.value)
            print(cell.formula)
            print(cell.style)
            print(cell.letter)

        fmt = self._fmt_0(**kwargs)
        print(fmt)

        return "Summary"

    def _fmt_0(self, **kwargs):
        for s in self._sheets:
            print("Fmt --> ", s)

        return "Fmt"


def main():
    s = S10406("uow")
    s.summary_0([])

    print(s)
    result = s.to_json()

    print(result)

if __name__ == "__main__":
    main()

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page