Refactory some methods for sheets

This commit is contained in:
Mauricio Baeza 2020-11-10 22:48:36 -06:00
parent 278c631cdd
commit 79d6a39984
2 changed files with 44 additions and 94 deletions

View File

@ -290,89 +290,10 @@ class LOCalcSheet(object):
def __init__(self, obj, doc):
self._obj = obj
self._doc = doc
self._init_values()
def __getitem__(self, index):
return LOCellRange(self.obj[index], self.doc)
def __enter__(self):
return self
def __exit__(self, exc_type, exc_value, traceback):
pass
def _init_values(self):
self._events = None
self._dp = self.obj.getDrawPage()
self._images = {i.Name: LOImage(i) for i in self._dp}
@property
def obj(self):
return self._obj
@property
def doc(self):
return self._doc
@property
def images(self):
return self._images
@property
def name(self):
return self._obj.Name
@name.setter
def name(self, value):
self._obj.Name = value
@property
def code_name(self):
return self._obj.CodeName
@code_name.setter
def code_name(self, value):
self._obj.CodeName = value
@property
def color(self):
return self._obj.TabColor
@color.setter
def color(self, value):
self._obj.TabColor = get_color(value)
@property
def active(self):
return self.doc.selection.first
def activate(self):
self.doc.activate(self.obj)
return
@property
def visible(self):
return self.obj.IsVisible
@visible.setter
def visible(self, value):
self.obj.IsVisible = value
@property
def is_protected(self):
return self._obj.isProtected()
@property
def password(self):
return ''
@visible.setter
def password(self, value):
self.obj.protect(value)
def unprotect(self, value):
try:
self.obj.unprotect(value)
return True
except:
pass
return False
def get_cursor(self, cell):
return self.obj.createCursorByRange(cell)
@ -404,21 +325,6 @@ class LOCalcSheet(object):
print('add_listener')
return
def get_range_by_address(self, address):
row_s = address.StartRow
row_e = address.EndRow + 1
col_s = address.StartColumn
col_e = address.EndColumn + 1
return LOCellRange(self.obj[row_s:row_e,col_s:col_e], self.doc)
def render(self, data, rango=None, clean=False):
if rango is None:
ra = self.obj.getPrintAreas()[0]
rango = self.get_range_by_address(ra)
rango.render(data, clean)
return rango
def find(self, search_string, rango=None):
if rango is None:
ra = self.obj.getPrintAreas()[0]

View File

@ -1521,6 +1521,46 @@ class LOCalcSheet(object):
def name(self, value):
self._obj.Name = value
@property
def code_name(self):
return self._obj.CodeName
@code_name.setter
def code_name(self, value):
self._obj.CodeName = value
@property
def visible(self):
return self._obj.IsVisible
@visible.setter
def visible(self, value):
self._obj.IsVisible = value
@property
def is_protected(self):
return self._obj.isProtected()
@property
def password(self):
return ''
@visible.setter
def password(self, value):
self.obj.protect(value)
def unprotect(self, value):
try:
self.obj.unprotect(value)
return True
except:
pass
return False
@property
def color(self):
return self._obj.TabColor
@color.setter
def color(self, value):
self._obj.TabColor = get_color(value)
@property
def used_area(self):
cursor = self.get_cursor()
@ -1555,6 +1595,10 @@ class LOCalcSheet(object):
def forms(self):
return LOSheetForms(self.obj.DrawPage.Forms)
def activate(self):
self.doc.activate(self._obj)
return
def clean(self):
doc = self.doc
sheet = doc.create_instance('com.sun.star.sheet.Spreadsheet')