From 969294c2af61e10a171b02c269a82b0af5757f7b Mon Sep 17 00:00:00 2001 From: El Mau Date: Mon, 7 Mar 2022 21:36:41 -0600 Subject: [PATCH] Doc for Calc --- docs/source/application.rst | 2 +- docs/source/calc.rst | 21 +++++++++++++ docs/source/index.rst | 1 + source/easymacro.py | 63 +++++++++++++++++++++++++++++++++++++ 4 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 docs/source/calc.rst diff --git a/docs/source/application.rst b/docs/source/application.rst index 214e25f..a80764d 100644 --- a/docs/source/application.rst +++ b/docs/source/application.rst @@ -257,7 +257,7 @@ Reset all editions. For applications ----------------- +^^^^^^^^^^^^^^^^ Get shortcuts for application. For Calc. diff --git a/docs/source/calc.rst b/docs/source/calc.rst new file mode 100644 index 0000000..d59684a --- /dev/null +++ b/docs/source/calc.rst @@ -0,0 +1,21 @@ + +Calc +==== + +Remember, always import library. + +.. code-block:: python + + import easymacro as app + + +Active document +--------------- + +.. code-block:: python + + doc = app.active + app.debug(doc.type) + + +.. _support filters: https://help.libreoffice.org/latest/en-US/text/shared/guide/convertfilters.html diff --git a/docs/source/index.rst b/docs/source/index.rst index 86600d9..f0921f1 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -28,6 +28,7 @@ You can used **easymacro** with any extension or directly in your macros. email application documents + calc Indices and tables diff --git a/source/easymacro.py b/source/easymacro.py index a89062b..56aaaae 100644 --- a/source/easymacro.py +++ b/source/easymacro.py @@ -2947,10 +2947,44 @@ class LODocMain(): class LODocCalc(LODocument): + """Classe for Calc module""" _type = 'calc' def __init__(self, obj): super().__init__(obj) + self._sheets = obj.Sheets + + def __getitem__(self, index): + return LOCalcSheet(self._sheets[index]) + + def __len__(self): + return self._sheets.Count + + def __contains__(self, item): + return item in self._sheets + + @property + def headers(self): + return self._cc.ColumnRowHeaders + @headers.setter + def headers(self, value): + self._cc.ColumnRowHeaders = value + + @property + def tabs(self): + return self._cc.SheetTabs + @tabs.setter + def tabs(self, value): + self._cc.SheetTabs = value + + @property + def names(self): + names = self.obj.Sheets.ElementNames + return names + + @property + def active(self): + return LOCalcSheet(self._cc.ActiveSheet) class LOCalcSheet(object): @@ -2970,6 +3004,35 @@ class LOCalcSheet(object): def __str__(self): return f'easymacro.LOCalcSheet: {self.name}' + @property + def obj(self): + return self._obj + + @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 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() + class LOCalcRange(object):