Doc for sheet methods
This commit is contained in:
parent
9e6ac4b28e
commit
4bf03e582d
|
@ -0,0 +1,377 @@
|
||||||
|
Sheets
|
||||||
|
------
|
||||||
|
|
||||||
|
Active sheet
|
||||||
|
^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
doc = app.active
|
||||||
|
sheet = doc.active
|
||||||
|
app.debug(sheet.name)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
|
Get by index
|
||||||
|
^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
doc = app.active
|
||||||
|
sheet = doc[0]
|
||||||
|
app.debug(sheet.name)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
|
Get by name
|
||||||
|
^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
doc = app.active
|
||||||
|
sheet = doc['Sheet1']
|
||||||
|
app.debug(sheet.name)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
|
Contains
|
||||||
|
^^^^^^^^
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
doc = app.active
|
||||||
|
app.debug('Sheet1' in doc)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
|
Get tuple with all names
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
doc = app.active
|
||||||
|
app.debug(doc.names)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
|
Count
|
||||||
|
^^^^^
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
doc = app.active
|
||||||
|
app.debug(len(doc))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
|
New
|
||||||
|
^^^
|
||||||
|
|
||||||
|
Always validate if new name not exists.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
If 'NewSheet' exists, reset it to clean sheet.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
doc = app.active
|
||||||
|
|
||||||
|
doc['NewSheet'] = doc.new_sheet
|
||||||
|
|
||||||
|
# ~ or
|
||||||
|
|
||||||
|
sheet = doc.insert('NewSheet2')
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
|
Insert multiple, get last insert.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
names = ('One', 'Two', 'Three')
|
||||||
|
sheet = doc.insert(names)
|
||||||
|
app.debug(sheet.name)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
|
Move
|
||||||
|
^^^^
|
||||||
|
|
||||||
|
Move by object to last position.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
sheet = doc[0]
|
||||||
|
doc.move(sheet)
|
||||||
|
|
||||||
|
Move by name to last position.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
doc.move('Sheet1')
|
||||||
|
|
||||||
|
Move to position.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
sheet = doc[0]
|
||||||
|
doc.move(sheet, 2)
|
||||||
|
|
||||||
|
Move from sheet
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
sheet = doc.active
|
||||||
|
sheet.move()
|
||||||
|
|
||||||
|
Move to position.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
sheet = doc.active
|
||||||
|
sheet.move(2)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
|
Remove
|
||||||
|
^^^^^^
|
||||||
|
|
||||||
|
Remove by object.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
Always should be exists at least one sheet.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
sheet = doc[0]
|
||||||
|
doc.remove(sheet)
|
||||||
|
|
||||||
|
Remove by name.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
doc.remove('One')
|
||||||
|
|
||||||
|
Remove from sheet.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
sheet = doc.active
|
||||||
|
sheet.remove()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
|
Copy
|
||||||
|
^^^^
|
||||||
|
|
||||||
|
Copy inside the same spreadsheet. Always validate if new name not exists.
|
||||||
|
|
||||||
|
* By object
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
sheet = doc[0]
|
||||||
|
doc.copy_sheet(sheet, 'OtherSheet')
|
||||||
|
|
||||||
|
* By name
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
doc.copy_sheet('Sheet1', 'Sheet2')
|
||||||
|
|
||||||
|
* From sheet
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
sheet = doc.active
|
||||||
|
sheet.copy(f'{sheet.name}_2')
|
||||||
|
|
||||||
|
* If not set new name, automatically get next name free with `name + index`
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
sheet = doc.active
|
||||||
|
sheet.copy()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
|
Copy from
|
||||||
|
^^^^^^^^^
|
||||||
|
|
||||||
|
* Copy sheet from one spreadsheet to other.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
doc = app.active
|
||||||
|
doc_source = app.docs['Contacts.ods']
|
||||||
|
name_source = 'Names'
|
||||||
|
name_target = 'Names'
|
||||||
|
position = 0
|
||||||
|
doc.copy_from(doc_source, name_source, name_target, position)
|
||||||
|
|
||||||
|
* If not set `name_source` and `name_target`, copy all sheet in doc source.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
doc_source = app.docs['Contacts.ods']
|
||||||
|
doc.copy_from(doc_source)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
|
Copy to
|
||||||
|
^^^^^^^
|
||||||
|
|
||||||
|
* Copy from sheet with the same name
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
doc = app.active
|
||||||
|
sheet = doc.active
|
||||||
|
doc = app.docs.new()
|
||||||
|
sheet.copy_to(doc)
|
||||||
|
|
||||||
|
* Used new name
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
doc = app.active
|
||||||
|
sheet = doc.active
|
||||||
|
doc = app.docs.new()
|
||||||
|
sheet.copy_to(doc, 'NewName')
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
|
|
||||||
|
Sort
|
||||||
|
^^^^
|
||||||
|
|
||||||
|
* Sort sheets by names.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
doc = app.active
|
||||||
|
doc.sort()
|
||||||
|
|
||||||
|
* Sort in reverse.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
doc = app.active
|
||||||
|
doc.sort(True)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
|
Name
|
||||||
|
^^^^
|
||||||
|
|
||||||
|
* Name visible by the user.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
sheet = app.active_sheet
|
||||||
|
app.msgbox(sheet.name)
|
||||||
|
sheet.name = 'NewName'
|
||||||
|
app.msgbox(sheet.name)
|
||||||
|
|
||||||
|
|
||||||
|
Code name
|
||||||
|
^^^^^^^^^
|
||||||
|
|
||||||
|
* Name only accessible by code.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
sheet = app.active_sheet
|
||||||
|
app.msgbox(sheet.code_name)
|
||||||
|
sheet.code_name = 'my_name'
|
||||||
|
app.msgbox(sheet.code_name)
|
||||||
|
|
||||||
|
|
||||||
|
Visible
|
||||||
|
^^^^^^^
|
||||||
|
|
||||||
|
* Apply only with spreadsheet with two or more sheets.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
sheet = app.active_sheet
|
||||||
|
app.msgbox(sheet.visible)
|
||||||
|
sheet.visible = not sheet.visible
|
||||||
|
app.msgbox(sheet.visible)
|
||||||
|
sheet.visible = not sheet.visible
|
||||||
|
|
||||||
|
|
||||||
|
Is protected
|
||||||
|
^^^^^^^^^^^^
|
||||||
|
|
||||||
|
* If sheet is protected with password.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
sheet = app.active_sheet
|
||||||
|
app.msgbox(sheet.is_protected)
|
||||||
|
|
||||||
|
|
||||||
|
Set password
|
||||||
|
^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
sheet = app.active_sheet
|
||||||
|
sheet.password = 'letmein'
|
||||||
|
app.msgbox(sheet.is_protected)
|
||||||
|
|
||||||
|
|
||||||
|
Remove password
|
||||||
|
^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
sheet = app.active_sheet
|
||||||
|
sheet.password = 'letmein'
|
||||||
|
app.msgbox(sheet.is_protected)
|
||||||
|
|
||||||
|
sheet.unprotect('letmein')
|
||||||
|
app.msgbox(sheet.is_protected)
|
||||||
|
|
||||||
|
|
||||||
|
Tab color
|
||||||
|
^^^^^^^^^
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
sheet = app.active_sheet
|
||||||
|
app.msgbox(sheet.color)
|
||||||
|
|
||||||
|
sheet.color = 'red'
|
||||||
|
app.msgbox(sheet.color)
|
||||||
|
|
||||||
|
# RGB
|
||||||
|
sheet.color = (125, 200, 10)
|
||||||
|
app.msgbox(sheet.color)
|
||||||
|
|
||||||
|
|
||||||
|
Document parent
|
||||||
|
^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
doc = sheet.doc
|
||||||
|
|
||||||
|
|
||||||
|
Activate
|
||||||
|
^^^^^^^^
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
doc = app.active
|
||||||
|
# Get last sheet
|
||||||
|
sheet = doc[-1]
|
||||||
|
|
||||||
|
# Activate from doc
|
||||||
|
doc.activate(sheet)
|
||||||
|
|
||||||
|
# Activate from sheet
|
||||||
|
sheet.activate()
|
|
@ -8,7 +8,7 @@ Welcome to easymacro's documentation!
|
||||||
|
|
||||||
**easymacro** it's a library for easily develop macros en LibreOffice con Python. It is an abstraction layer between the extensive and complex LibreOffice API UNO and your code.
|
**easymacro** it's a library for easily develop macros en LibreOffice con Python. It is an abstraction layer between the extensive and complex LibreOffice API UNO and your code.
|
||||||
|
|
||||||
Probably, your will be more happy if used it. :)
|
Probably, you will be more happy if used it. :)
|
||||||
|
|
||||||
You can used **easymacro** with any extension or directly in your macros.
|
You can used **easymacro** with any extension or directly in your macros.
|
||||||
|
|
||||||
|
|
|
@ -3370,7 +3370,9 @@ class LODocCalc(LODocument):
|
||||||
|
|
||||||
`See Api RangeSelectionArguments <https://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1sheet_1_1RangeSelectionArguments.html>`_
|
`See Api RangeSelectionArguments <https://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1sheet_1_1RangeSelectionArguments.html>`_
|
||||||
"""
|
"""
|
||||||
if not args:
|
if args:
|
||||||
|
args['CloseOnMouseRelease'] = args.get('CloseOnMouseRelease', True)
|
||||||
|
else:
|
||||||
args = dict(
|
args = dict(
|
||||||
Title = 'Please select a range',
|
Title = 'Please select a range',
|
||||||
CloseOnMouseRelease = True)
|
CloseOnMouseRelease = True)
|
||||||
|
@ -3408,6 +3410,10 @@ class LOCalcSheet(object):
|
||||||
def obj(self):
|
def obj(self):
|
||||||
return self._obj
|
return self._obj
|
||||||
|
|
||||||
|
@property
|
||||||
|
def doc(self):
|
||||||
|
return LODocCalc(self.obj.DrawPage.Forms.Parent)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def name(self):
|
def name(self):
|
||||||
return self._obj.Name
|
return self._obj.Name
|
||||||
|
@ -3433,6 +3439,33 @@ class LOCalcSheet(object):
|
||||||
def is_protected(self):
|
def is_protected(self):
|
||||||
return self._obj.isProtected()
|
return self._obj.isProtected()
|
||||||
|
|
||||||
|
def move(self, pos: int=-1):
|
||||||
|
index = pos
|
||||||
|
if pos < 0:
|
||||||
|
index = len(self.doc)
|
||||||
|
self.doc.move(self.name, index)
|
||||||
|
return
|
||||||
|
|
||||||
|
def remove(self):
|
||||||
|
self.doc.remove(self.name)
|
||||||
|
return
|
||||||
|
|
||||||
|
def copy(self, new_name: str='', pos: int=-1):
|
||||||
|
index = pos
|
||||||
|
if pos < 0:
|
||||||
|
index = len(self.doc)
|
||||||
|
new_sheet = self.doc.copy_sheet(self.name, new_name, index)
|
||||||
|
return new_sheet
|
||||||
|
|
||||||
|
def copy_to(self, doc: Any, target: str='', pos: int=-1):
|
||||||
|
index = pos
|
||||||
|
if pos < 0:
|
||||||
|
index = len(doc)
|
||||||
|
|
||||||
|
new_name = target or self.name
|
||||||
|
sheet = doc.copy_from(self.doc, self.name, new_name, index)
|
||||||
|
return sheet
|
||||||
|
|
||||||
|
|
||||||
class LOCalcRange(object):
|
class LOCalcRange(object):
|
||||||
CELL = 'ScCellObj'
|
CELL = 'ScCellObj'
|
||||||
|
|
Loading…
Reference in New Issue