Source code for pyopenxlsx.range

import asyncio
from weakref import ref as weakref

from .cell import Cell


[docs] class Range: """ Represents a range of Excel cells. Uses weak references to avoid circular references with Worksheet. """ __slots__ = ("_range", "_worksheet_ref") def __init__(self, raw_range, worksheet=None): self._range = raw_range # Use weak reference to avoid circular references self._worksheet_ref = weakref(worksheet) if worksheet else None @property def _worksheet(self): """Get the worksheet, or None if it has been garbage collected.""" return self._worksheet_ref() if self._worksheet_ref else None def __iter__(self): for c in self._range: if self._worksheet: yield self._worksheet._get_cached_cell(c) else: yield Cell(c) @property def address(self): return self._range.address() @property def num_rows(self): return self._range.num_rows() @property def num_columns(self): return self._range.num_columns()
[docs] def clear(self): self._range.clear()
[docs] async def clear_async(self): await asyncio.to_thread(self.clear)