Source code for simple_report.xls.cursor

#coding: utf-8

from simple_report.core.cursor import AbstractCursor, AbstractCalculateNextCursor

[docs]class CursorXLS(AbstractCursor): """ Специализированный курсор для XLS таблиц """ def __init__(self, column=None, row=None): super(CursorXLS, self).__init__() self.column = column or (0, 0) self.row = row or (0, 0) def _test_value(self, value): super(CursorXLS, self)._test_value(value) # Координаты в XLS таблицах имеют вид # (3, 0). 3 - Номер столбца. Нумерация с нуля # 0 - Номер строки. Нумерация с нуля. assert isinstance(value[0], int)
[docs]class CalculateNextCursorXLS(AbstractCalculateNextCursor): """ Получение следующего курсора """
[docs] def get_next_column(self, current_column, end_col, begin_col): """ Получение следующей колонки :param current_column: текущая колонка :param end_col: конечная колонка :param begin_col: начальная колонка :result: следующая колонка """ return current_column + end_col - begin_col + 1
[docs] def get_first_column(self): """ Получение первой колонки :result: номер первой колонки """ # Колонки нумеруются и номер первой нуль. return 0
[docs] def get_first_row(self): """ Получение первой строки :result: номер первой строки """ return 0
[docs] def calculate_indent(self, column, w): """ Вычисление сдвига :param column: колонка :param w: ширина сдвига :result: разница между номером колонки и шириной сдвига """ return column - w