Add find first in sheet

This commit is contained in:
Mauricio Baeza 2020-11-30 22:00:29 -06:00
parent a9c73f62b0
commit 93da631e38
2 changed files with 16 additions and 39 deletions

View File

@ -4,45 +4,6 @@
# ~ sp = ThisComponent.getScriptProvider()
class LOCalcSheet(object):
def __init__(self, obj, doc):
self._obj = obj
self._init_values()
def _init_values(self):
self._events = None
@property
def events(self):
return self._events
@events.setter
def events(self, controllers):
self._events = controllers
self._connect_listeners()
def _connect_listeners(self):
if self.events is None:
return
listeners = {
'addModifyListener': EventsModify,
}
for key, value in listeners.items():
getattr(self.obj, key)(listeners[key](self.events))
print('add_listener')
return
def find(self, search_string, rango=None):
if rango is None:
ra = self.obj.getPrintAreas()[0]
rango = self.get_range_by_address(ra)
cell = rango.find(search_string)
return cell
class LOWriter(LODocument):
def write(self, data, cursor=None):

View File

@ -2095,6 +2095,11 @@ class LOCalcSheet(object):
rango = self.used_area
return rango.render(data, clean)
def find(self, search_string, rango=None):
if rango is None:
rango = self.used_area
return rango.find(search_string)
class LOCalcRange(object):
@ -2451,6 +2456,17 @@ class LOCalcRange(object):
self._render_value(k, v)
return
def find(self, search_string):
if self._sd is None:
self._sd = self.sheet.obj.createSearchDescriptor()
self._sd.SearchCaseSensitive = False
self._sd.setSearchString(search_string)
cell = self.obj.findFirst(self._sd)
if cell:
cell = LOCalcRange(cell)
return cell
def find_all(self, search_string):
if self._sd is None:
self._sd = self.sheet.obj.createSearchDescriptor()