From 93da631e38257d8132f1e2576a3a495cf9fa5204 Mon Sep 17 00:00:00 2001 From: Mauricio Baeza Date: Mon, 30 Nov 2020 22:00:29 -0600 Subject: [PATCH] Add find first in sheet --- source/diff.py | 39 --------------------------------------- source/easymacro2.py | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 39 deletions(-) diff --git a/source/diff.py b/source/diff.py index 1541825..ed235c3 100644 --- a/source/diff.py +++ b/source/diff.py @@ -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): diff --git a/source/easymacro2.py b/source/easymacro2.py index 783cda0..b24531b 100644 --- a/source/easymacro2.py +++ b/source/easymacro2.py @@ -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()