Documentation for Calc

This commit is contained in:
Mauricio Baeza 2021-07-04 19:33:44 -05:00
parent b1355d5d88
commit 62d2cd25c1
29 changed files with 2934 additions and 1727 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,4 +1,3 @@
Calc
----
@ -9,583 +8,11 @@ Remember, always import library.
import easymacro as app
Document
~~~~~~~~
Current doc
^^^^^^^^^^^
.. code-block:: python
doc = app.active
app.msgbox(doc.type)
Selection
^^^^^^^^^
* If selection is range get LOCalcRange, if selection is shape get LOShape, other selection get original pyuno object.
.. code-block:: python
doc = app.active
selection = doc.selection
app.msgbox(type(selection))
Headers
^^^^^^^
* Hide or show columns and rows headers.
.. code-block:: python
doc = app.active
app.msgbox(doc.headers)
doc.headers = not doc.headers
app.msgbox(doc.headers)
doc.headers = not doc.headers
Tabs
^^^^
* Hide or show tab sheets.
.. code-block:: python
doc = app.active
app.msgbox(doc.tabs)
doc.tabs = not doc.tabs
app.msgbox(doc.tabs)
doc.tabs = not doc.tabs
Sheets
~~~~~~
Active sheet
^^^^^^^^^^^^
.. code-block:: python
sheet = app.active_sheet
app.msgbox(sheet.name)
# or
doc = app.active
sheet = doc.active
Get by index
^^^^^^^^^^^^
.. code-block:: python
doc = app.active
sheet = doc[0]
app.msgbox(sheet.name)
Get by name
^^^^^^^^^^^
.. code-block:: python
doc = app.active
sheet = doc['Sheet1']
app.msgbox(sheet.name)
Contains
^^^^^^^^
.. code-block:: python
doc = app.active
app.msgbox('Sheet1' in doc)
Get tuple with all names
^^^^^^^^^^^^^^^^^^^^^^^^
.. code-block:: python
doc = app.active
app.msgbox(doc.names)
Count
^^^^^
.. code-block:: python
doc = app.active
app.msgbox(len(doc))
New
^^^
* Always validate if new name not exists.
.. code-block:: python
doc = app.active
sheet = doc.new_sheet()
# CAUTION: If 'NewSheet' exists, reset it to clean sheet.
doc['NewSheet'] = sheet
# ~ or
sheet = doc.insert('NewSheet2')
* Insert multiple, get last insert.
.. code-block:: python
names = ('One', 'Two', 'Three')
sheet = doc.insert(names)
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 = app.active_sheet
sheet.move()
* Move to position.
.. code-block:: python
sheet = app.active_sheet
sheet.move(2)
Remove
^^^^^^
* Remove by object.
.. 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 = app.active_sheet
sheet.remove()
Copy
^^^^
* Copy inside the same spreadsheet.
* By object
.. code-block:: python
sheet = doc[0]
doc.copy(sheet, 'OtherSheet')
* By name
.. code-block:: python
doc.copy('Sheet1', 'Sheet2')
* From sheet
.. code-block:: python
sheet = app.active_sheet
sheet.copy(sheet.name + '_2')
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)
Copy to
^^^^^^^
* Copy from sheet with the same name
.. code-block:: python
doc = app.docs.new()
sheet = app.active_sheet
sheet.copy_to(doc)
* Used new name
.. code-block:: python
doc = app.docs.new()
sheet = app.active_sheet
sheet.copy_to(doc, 'NewName')
Sort
^^^^
* Sort sheets by names.
.. code-block:: python
doc = app.active
doc.sort()
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()
Ranges
~~~~~~
Cells
^^^^^
* By name
.. code-block:: python
sheet = app.active_sheet
cell = sheet['A1']
app.msgbox(cell.name)
* By position [row, column]
.. code-block:: python
cell = sheet[1, 4]
app.msgbox(cell.name)
Ranges
^^^^^^
* By name
.. code-block:: python
sheet = app.active_sheet
rango = sheet['B2:D5']
app.msgbox(rango.name)
* By position [start_row:end_row, start_column:end_column]
.. code-block:: python
rango = sheet[1:5,1:4]
app.msgbox(rango.name)
* Group ranges
.. code-block:: python
doc = app.active
sheet = doc.active
last = doc[-1]
with doc.ranges as r:
# Add one range
r.add(sheet['A1:B2'])
r2 = sheet['C4:D5']
r3 = last['E7:D8']
r4 = last['E10:F12']
# Add multiple ranges
r.add((r2, r3, r4))
app.debug(r.names)
* Get the same range in all sheets
.. code-block:: python
ranges = doc.get_ranges('A1:B1')
app.debug(ranges.names)
* Get columns by name.
.. code-block:: python
sheet = app.active_sheet
rango = sheet['B:B']
app.debug(rango.name)
rango = sheet['D:F']
app.debug(rango.name)
* Get columns by position.
.. code-block:: python
sheet = app.active_sheet
# Column B
rango = sheet[0:,1]
app.debug(rango.name)
# Columnas D:F
rango = sheet[0:,3:6]
app.debug(rango.name)
* Get rows
.. code-block:: python
sheet = app.active_sheet
# One row
row = sheet[1]
app.debug(row.name)
# Range rows
row = sheet[3:10,0:]
app.debug(row.name)
Info ranges
^^^^^^^^^^^
* Get absolute name
.. code-block:: python
sheet = app.active_sheet
rango = sheet['A1:E10']
app.msgbox(rango.name)
* Get address
.. code-block:: python
sheet = app.active_sheet
rango = sheet['A1']
a = rango.address
data = f"""Cell Address
Row: {a.Row}
Column: {a.Column}
"""
app.msgbox(data)
rango = sheet['A1:E10']
ra = rango.range_address
data = (
f'Range Address:\n\n'
f'Star Row: {ra.StartRow}\n'
f'End Row: {ra.EndRow}\n'
f'Star Column: {ra.StartColumn}\n'
f'End Column: {ra.EndColumn}\n'
)
app.msgbox(data)
Special ranges
^^^^^^^^^^^^^^
* Get used area
.. code-block:: python
sheet = app.active_sheet
rango = sheet.used_area
app.msgbox(rango.name)
* Get current region
.. code-block:: python
rango = sheet['A1'].current_region
app.msgbox(rango.name)
* Get next free cell
.. code-block:: python
cell = sheet['A1'].next_cell
app.msgbox(cell.name)
* Get merged area
.. code-block:: python
sheet = app.active_sheet
rango = sheet['A1'].merged_area
app.msgbox(rango.name)
* Get visible cells
.. code-block:: python
sheet = app.active_sheet
rangos = sheet['A1:E10'].visible
for r in rangos:
app.debug(r.name)
* Get empty cells
.. code-block:: python
sheet = app.active_sheet
rangos = sheet['A1:E10'].empty
for r in rangos:
app.debug(r.name)
Manipulate ranges
~~~~~~~~~~~~~~~~~
.. toctree::
:maxdepth: 2
calc_doc.rst
calc_sheets.rst
calc_ranges.rst
calc_ranges2.rst
calc_data.rst

View File

@ -0,0 +1,45 @@
Data
~~~~
Read
^^^^
* Get value from cell, automatic detect type and get value.
.. code-block:: python
sheet = app.active_sheet
cell = sheet['A1']
value = cell.value
info = f'Cell Type = {cell.type}\n\nCell Value = {cell.value}'
app.msgbox(info)
Write
^^^^^
* Automatic detect data type.
.. code-block:: python
sheet = app.active_sheet
# ~ Set int
sheet['A1'].value = 1
# ~ Set float
sheet['A2'].value = 10.5
# ~ Set string
sheet['A3'].value = 'Damn World'
# ~ Set date
sheet['A4'].value = app.today()
# ~ Set time
sheet['A5'].value = app.now(True)
# ~ Set datetime
sheet['A6'].value = app.now()

View File

@ -0,0 +1,50 @@
Document
~~~~~~~~
Current doc
^^^^^^^^^^^
.. code-block:: python
doc = app.active
app.msgbox(doc.type)
Selection
^^^^^^^^^
* If selection is range get LOCalcRange, if selection is shape get LOShape, other selection get original pyuno object.
.. code-block:: python
doc = app.active
selection = doc.selection
app.msgbox(type(selection))
Headers
^^^^^^^
* Hide or show columns and rows headers.
.. code-block:: python
doc = app.active
app.msgbox(doc.headers)
doc.headers = not doc.headers
app.msgbox(doc.headers)
doc.headers = not doc.headers
Tabs
^^^^
* Hide or show tab sheets.
.. code-block:: python
doc = app.active
app.msgbox(doc.tabs)
doc.tabs = not doc.tabs
app.msgbox(doc.tabs)
doc.tabs = not doc.tabs

View File

@ -0,0 +1,190 @@
Cell and ranges
~~~~~~~~~~~~~~~
Cells
^^^^^
* By name
.. code-block:: python
sheet = app.active_sheet
cell = sheet['A1']
app.msgbox(cell.name)
* By position [row, column]
.. code-block:: python
cell = sheet[1, 4]
app.msgbox(cell.name)
Ranges
^^^^^^
* By name
.. code-block:: python
sheet = app.active_sheet
rango = sheet['B2:D5']
app.msgbox(rango.name)
* By position [start_row:end_row, start_column:end_column]
.. code-block:: python
rango = sheet[1:5,1:4]
app.msgbox(rango.name)
* Group ranges
.. code-block:: python
doc = app.active
sheet = doc.active
last = doc[-1]
with doc.ranges as r:
# Add one range
r.add(sheet['A1:B2'])
r2 = sheet['C4:D5']
r3 = last['E7:D8']
r4 = last['E10:F12']
# Add multiple ranges
r.add((r2, r3, r4))
app.debug(r.names)
* Get the same range in all sheets
.. code-block:: python
ranges = doc.get_ranges('A1:B1')
app.debug(ranges.names)
* Get columns by name.
.. code-block:: python
sheet = app.active_sheet
rango = sheet['B:B']
app.debug(rango.name)
rango = sheet['D:F']
app.debug(rango.name)
* Get columns by position.
.. code-block:: python
sheet = app.active_sheet
# Column B
rango = sheet[0:,1]
app.debug(rango.name)
# Columnas D:F
rango = sheet[0:,3:6]
app.debug(rango.name)
* Get rows
.. code-block:: python
sheet = app.active_sheet
# One row
row = sheet[1]
app.debug(row.name)
# Range rows
row = sheet[3:10,0:]
app.debug(row.name)
Info ranges
^^^^^^^^^^^
* Get absolute name
.. code-block:: python
sheet = app.active_sheet
rango = sheet['A1:E10']
app.msgbox(rango.name)
* Get address
.. code-block:: python
sheet = app.active_sheet
rango = sheet['A1']
a = rango.address
data = f"""Cell Address
Row: {a.Row}
Column: {a.Column}
"""
app.msgbox(data)
rango = sheet['A1:E10']
ra = rango.range_address
data = (
f'Range Address:\n\n'
f'Star Row: {ra.StartRow}\n'
f'End Row: {ra.EndRow}\n'
f'Star Column: {ra.StartColumn}\n'
f'End Column: {ra.EndColumn}\n'
)
app.msgbox(data)
Special ranges
^^^^^^^^^^^^^^
* Get used area
.. code-block:: python
sheet = app.active_sheet
rango = sheet.used_area
app.msgbox(rango.name)
* Get current region
.. code-block:: python
rango = sheet['A1'].current_region
app.msgbox(rango.name)
* Get next free cell
.. code-block:: python
cell = sheet['A1'].next_cell
app.msgbox(cell.name)
* Get merged area
.. code-block:: python
sheet = app.active_sheet
rango = sheet['A1'].merged_area
app.msgbox(rango.name)
* Get visible cells
.. code-block:: python
sheet = app.active_sheet
rangos = sheet['A1:E10'].visible
for r in rangos:
app.debug(r.name)
* Get empty cells
.. code-block:: python
sheet = app.active_sheet
rangos = sheet['A1:E10'].empty
for r in rangos:
app.debug(r.name)

View File

@ -0,0 +1,124 @@
Manipulate ranges
~~~~~~~~~~~~~~~~~
**Not, not is necesary select range for manipulate**
Select
^^^^^^
* Select from doc
.. code-block:: python
doc = app.active
sheet = app.active_sheet
cell = sheet['A1']
doc.select(cell)
* Select in self range
.. code-block:: python
sheet = app.active_sheet
rango = sheet['A1:C5']
rango.select()
Move
^^^^
.. code-block:: python
sheet = app.active_sheet
rango = sheet['A1:C5']
rango.move(sheet['E6'])
* Move to other sheet
.. code-block:: python
rango.move(doc[-1]['E6'])
Insert
^^^^^^
* Default insert down
.. code-block:: python
sheet = app.active_sheet
rango = sheet['A1:C1']
rango.insert()
* Insert and move right
.. code-block:: python
rango.insert(app.CellInsertMode.RIGHT)
* Insert entire rows
.. code-block:: python
rango.insert(app.CellInsertMode.ROWS)
* Insert entire columns
.. code-block:: python
rango.insert(app.CellInsertMode.COLUMNS)
Delete
^^^^^^
* Default move up
.. code-block:: python
sheet = app.active_sheet
rango = sheet['A1:C1']
rango.delete()
* Delete and move left
.. code-block:: python
rango.delete(app.CellDeleteMode.LEFT)
* Delete entire rows
.. code-block:: python
rango.delete(app.CellDeleteMode.ROWS)
* Delete entire columns
.. code-block:: python
rango.delete(app.CellDeleteMode.COLUMNS)
Copy
^^^^
* Using native method `copyRange`, current range always should be a cell and source should be a range.
.. code-block:: python
sheet = app.active_sheet
cell = sheet['A5']
source = sheet['D1:E4']
cell.copy_from(source)
* From range to cell
.. code-block:: python
sheet = app.active_sheet
rango = sheet['A1:C5']
target = sheet['E1']
rango.copy_to(target)

View File

@ -0,0 +1,332 @@
Sheets
~~~~~~
Active sheet
^^^^^^^^^^^^
.. code-block:: python
sheet = app.active_sheet
app.msgbox(sheet.name)
# or
doc = app.active
sheet = doc.active
Get by index
^^^^^^^^^^^^
.. code-block:: python
doc = app.active
sheet = doc[0]
app.msgbox(sheet.name)
Get by name
^^^^^^^^^^^
.. code-block:: python
doc = app.active
sheet = doc['Sheet1']
app.msgbox(sheet.name)
Contains
^^^^^^^^
.. code-block:: python
doc = app.active
app.msgbox('Sheet1' in doc)
Get tuple with all names
^^^^^^^^^^^^^^^^^^^^^^^^
.. code-block:: python
doc = app.active
app.msgbox(doc.names)
Count
^^^^^
.. code-block:: python
doc = app.active
app.msgbox(len(doc))
New
^^^
* Always validate if new name not exists.
.. code-block:: python
doc = app.active
sheet = doc.new_sheet()
# CAUTION: If 'NewSheet' exists, reset it to clean sheet.
doc['NewSheet'] = sheet
# ~ or
sheet = doc.insert('NewSheet2')
* Insert multiple, get last insert.
.. code-block:: python
names = ('One', 'Two', 'Three')
sheet = doc.insert(names)
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 = app.active_sheet
sheet.move()
* Move to position.
.. code-block:: python
sheet = app.active_sheet
sheet.move(2)
Remove
^^^^^^
* Remove by object.
.. 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 = app.active_sheet
sheet.remove()
Copy
^^^^
* Copy inside the same spreadsheet.
* By object
.. code-block:: python
sheet = doc[0]
doc.copy(sheet, 'OtherSheet')
* By name
.. code-block:: python
doc.copy('Sheet1', 'Sheet2')
* From sheet
.. code-block:: python
sheet = app.active_sheet
sheet.copy(sheet.name + '_2')
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)
Copy to
^^^^^^^
* Copy from sheet with the same name
.. code-block:: python
doc = app.docs.new()
sheet = app.active_sheet
sheet.copy_to(doc)
* Used new name
.. code-block:: python
doc = app.docs.new()
sheet = app.active_sheet
sheet.copy_to(doc, 'NewName')
Sort
^^^^
* Sort sheets by names.
.. code-block:: python
doc = app.active
doc.sort()
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()

View File

@ -15,7 +15,7 @@
<script src="../_static/doctools.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Writer" href="writer.html" />
<link rel="next" title="Document" href="calc_doc.html" />
<link rel="prev" title="Application" href="application.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
@ -39,544 +39,62 @@
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">easymacro</span> <span class="k">as</span> <span class="nn">app</span>
</pre></div>
</div>
<section id="document">
<h2>Document<a class="headerlink" href="#document" title="Permalink to this headline"></a></h2>
<section id="current-doc">
<h3>Current doc<a class="headerlink" href="#current-doc" title="Permalink to this headline"></a></h3>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">doc</span><span class="o">.</span><span class="n">type</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="selection">
<h3>Selection<a class="headerlink" href="#selection" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>If selection is range get LOCalcRange, if selection is shape get LOShape, other selection get original pyuno object.</p></li>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="calc_doc.html">Document</a><ul>
<li class="toctree-l2"><a class="reference internal" href="calc_doc.html#current-doc">Current doc</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_doc.html#selection">Selection</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_doc.html#headers">Headers</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_doc.html#tabs">Tabs</a></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">selection</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">selection</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="nb">type</span><span class="p">(</span><span class="n">selection</span><span class="p">))</span>
</pre></div>
</div>
</section>
<section id="headers">
<h3>Headers<a class="headerlink" href="#headers" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>Hide or show columns and rows headers.</p></li>
</li>
<li class="toctree-l1"><a class="reference internal" href="calc_sheets.html">Sheets</a><ul>
<li class="toctree-l2"><a class="reference internal" href="calc_sheets.html#active-sheet">Active sheet</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_sheets.html#get-by-index">Get by index</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_sheets.html#get-by-name">Get by name</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_sheets.html#contains">Contains</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_sheets.html#get-tuple-with-all-names">Get tuple with all names</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_sheets.html#count">Count</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_sheets.html#new">New</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_sheets.html#move">Move</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_sheets.html#remove">Remove</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_sheets.html#copy">Copy</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_sheets.html#copy-from">Copy from</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_sheets.html#copy-to">Copy to</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_sheets.html#sort">Sort</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_sheets.html#name">Name</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_sheets.html#code-name">Code name</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_sheets.html#visible">Visible</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_sheets.html#is-protected">Is protected</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_sheets.html#set-password">Set password</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_sheets.html#remove-password">Remove password</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_sheets.html#tab-color">Tab color</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_sheets.html#document-parent">Document parent</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_sheets.html#activate">Activate</a></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">doc</span><span class="o">.</span><span class="n">headers</span><span class="p">)</span>
<span class="n">doc</span><span class="o">.</span><span class="n">headers</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">doc</span><span class="o">.</span><span class="n">headers</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">doc</span><span class="o">.</span><span class="n">headers</span><span class="p">)</span>
<span class="n">doc</span><span class="o">.</span><span class="n">headers</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">doc</span><span class="o">.</span><span class="n">headers</span>
</pre></div>
</div>
</section>
<section id="tabs">
<h3>Tabs<a class="headerlink" href="#tabs" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>Hide or show tab sheets.</p></li>
</li>
<li class="toctree-l1"><a class="reference internal" href="calc_ranges.html">Cell and ranges</a><ul>
<li class="toctree-l2"><a class="reference internal" href="calc_ranges.html#cells">Cells</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_ranges.html#ranges">Ranges</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_ranges.html#info-ranges">Info ranges</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_ranges.html#special-ranges">Special ranges</a></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">doc</span><span class="o">.</span><span class="n">tabs</span><span class="p">)</span>
<span class="n">doc</span><span class="o">.</span><span class="n">tabs</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">doc</span><span class="o">.</span><span class="n">tabs</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">doc</span><span class="o">.</span><span class="n">tabs</span><span class="p">)</span>
<span class="n">doc</span><span class="o">.</span><span class="n">tabs</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">doc</span><span class="o">.</span><span class="n">tabs</span>
</pre></div>
</div>
</section>
</section>
<section id="sheets">
<h2>Sheets<a class="headerlink" href="#sheets" title="Permalink to this headline"></a></h2>
<section id="active-sheet">
<h3>Active sheet<a class="headerlink" href="#active-sheet" title="Permalink to this headline"></a></h3>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
<span class="c1"># or</span>
<span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">sheet</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">active</span>
</pre></div>
</div>
</section>
<section id="get-by-index">
<h3>Get by index<a class="headerlink" href="#get-by-index" title="Permalink to this headline"></a></h3>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">sheet</span> <span class="o">=</span> <span class="n">doc</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="get-by-name">
<h3>Get by name<a class="headerlink" href="#get-by-name" title="Permalink to this headline"></a></h3>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">sheet</span> <span class="o">=</span> <span class="n">doc</span><span class="p">[</span><span class="s1">&#39;Sheet1&#39;</span><span class="p">]</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="contains">
<h3>Contains<a class="headerlink" href="#contains" title="Permalink to this headline"></a></h3>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="s1">&#39;Sheet1&#39;</span> <span class="ow">in</span> <span class="n">doc</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="get-tuple-with-all-names">
<h3>Get tuple with all names<a class="headerlink" href="#get-tuple-with-all-names" title="Permalink to this headline"></a></h3>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">doc</span><span class="o">.</span><span class="n">names</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="count">
<h3>Count<a class="headerlink" href="#count" title="Permalink to this headline"></a></h3>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">doc</span><span class="p">))</span>
</pre></div>
</div>
</section>
<section id="new">
<h3>New<a class="headerlink" href="#new" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>Always validate if new name not exists.</p></li>
</li>
<li class="toctree-l1"><a class="reference internal" href="calc_ranges2.html">Manipulate ranges</a><ul>
<li class="toctree-l2"><a class="reference internal" href="calc_ranges2.html#select">Select</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_ranges2.html#move">Move</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_ranges2.html#insert">Insert</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_ranges2.html#delete">Delete</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_ranges2.html#copy">Copy</a></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">sheet</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">new_sheet</span><span class="p">()</span>
<span class="c1"># CAUTION: If &#39;NewSheet&#39; exists, reset it to clean sheet.</span>
<span class="n">doc</span><span class="p">[</span><span class="s1">&#39;NewSheet&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sheet</span>
<span class="c1"># ~ or</span>
<span class="n">sheet</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="s1">&#39;NewSheet2&#39;</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Insert multiple, get last insert.</p></li>
</li>
<li class="toctree-l1"><a class="reference internal" href="calc_data.html">Data</a><ul>
<li class="toctree-l2"><a class="reference internal" href="calc_data.html#read">Read</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_data.html#write">Write</a></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">names</span> <span class="o">=</span> <span class="p">(</span><span class="s1">&#39;One&#39;</span><span class="p">,</span> <span class="s1">&#39;Two&#39;</span><span class="p">,</span> <span class="s1">&#39;Three&#39;</span><span class="p">)</span>
<span class="n">sheet</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="n">names</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="move">
<h3>Move<a class="headerlink" href="#move" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>Move by object to last position.</p></li>
</li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">doc</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
<span class="n">doc</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="n">sheet</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Move by name to last position.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="s1">&#39;Sheet1&#39;</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Move to position.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">doc</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
<span class="n">doc</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="n">sheet</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Move from sheet</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">move</span><span class="p">()</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Move to position.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="remove">
<h3>Remove<a class="headerlink" href="#remove" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>Remove by object.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">doc</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
<span class="n">doc</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">sheet</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Remove by name.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="s1">&#39;One&#39;</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Remove from sheet.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">remove</span><span class="p">()</span>
</pre></div>
</div>
</section>
<section id="copy">
<h3>Copy<a class="headerlink" href="#copy" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>Copy inside the same spreadsheet.</p></li>
<li><p>By object</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">doc</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
<span class="n">doc</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="n">sheet</span><span class="p">,</span> <span class="s1">&#39;OtherSheet&#39;</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>By name</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="s1">&#39;Sheet1&#39;</span><span class="p">,</span> <span class="s1">&#39;Sheet2&#39;</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>From sheet</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s1">&#39;_2&#39;</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="copy-from">
<h3>Copy from<a class="headerlink" href="#copy-from" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>Copy sheet from one spreadsheet to other.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">doc_source</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">docs</span><span class="p">[</span><span class="s1">&#39;Contacts.ods&#39;</span><span class="p">]</span>
<span class="n">name_source</span> <span class="o">=</span> <span class="s1">&#39;Names&#39;</span>
<span class="n">name_target</span> <span class="o">=</span> <span class="s1">&#39;Names&#39;</span>
<span class="n">position</span> <span class="o">=</span> <span class="mi">0</span>
<span class="n">doc</span><span class="o">.</span><span class="n">copy_from</span><span class="p">(</span><span class="n">doc_source</span><span class="p">,</span> <span class="n">name_source</span><span class="p">,</span> <span class="n">name_target</span><span class="p">,</span> <span class="n">position</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="copy-to">
<h3>Copy to<a class="headerlink" href="#copy-to" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>Copy from sheet with the same name</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">docs</span><span class="o">.</span><span class="n">new</span><span class="p">()</span>
<span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">copy_to</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Used new name</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">docs</span><span class="o">.</span><span class="n">new</span><span class="p">()</span>
<span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">copy_to</span><span class="p">(</span><span class="n">doc</span><span class="p">,</span> <span class="s1">&#39;NewName&#39;</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="sort">
<h3>Sort<a class="headerlink" href="#sort" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>Sort sheets by names.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">doc</span><span class="o">.</span><span class="n">sort</span><span class="p">()</span>
</pre></div>
</div>
</section>
<section id="name">
<h3>Name<a class="headerlink" href="#name" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>Name visible by the user.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="s1">&#39;NewName&#39;</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="code-name">
<h3>Code name<a class="headerlink" href="#code-name" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>Name only accessible by code.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">code_name</span><span class="p">)</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">code_name</span> <span class="o">=</span> <span class="s1">&#39;my_name&#39;</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">code_name</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="visible">
<h3>Visible<a class="headerlink" href="#visible" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>Apply only with spreadsheet with two or more sheets.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">visible</span><span class="p">)</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">visible</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">sheet</span><span class="o">.</span><span class="n">visible</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">visible</span><span class="p">)</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">visible</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">sheet</span><span class="o">.</span><span class="n">visible</span>
</pre></div>
</div>
</section>
<section id="is-protected">
<h3>Is protected<a class="headerlink" href="#is-protected" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>If sheet is protected with password.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">is_protected</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="set-password">
<h3>Set password<a class="headerlink" href="#set-password" title="Permalink to this headline"></a></h3>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">password</span> <span class="o">=</span> <span class="s1">&#39;letmein&#39;</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">is_protected</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="remove-password">
<h3>Remove password<a class="headerlink" href="#remove-password" title="Permalink to this headline"></a></h3>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">password</span> <span class="o">=</span> <span class="s1">&#39;letmein&#39;</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">is_protected</span><span class="p">)</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">unprotect</span><span class="p">(</span><span class="s1">&#39;letmein&#39;</span><span class="p">)</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">is_protected</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="tab-color">
<h3>Tab color<a class="headerlink" href="#tab-color" title="Permalink to this headline"></a></h3>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">color</span><span class="p">)</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">color</span> <span class="o">=</span> <span class="s1">&#39;red&#39;</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">color</span><span class="p">)</span>
<span class="c1"># RGB</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">color</span> <span class="o">=</span> <span class="p">(</span><span class="mi">125</span><span class="p">,</span> <span class="mi">200</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">color</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="document-parent">
<h3>Document parent<a class="headerlink" href="#document-parent" title="Permalink to this headline"></a></h3>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">sheet</span><span class="o">.</span><span class="n">doc</span>
</pre></div>
</div>
</section>
<section id="activate">
<h3>Activate<a class="headerlink" href="#activate" title="Permalink to this headline"></a></h3>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="c1"># Get last sheet</span>
<span class="n">sheet</span> <span class="o">=</span> <span class="n">doc</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
<span class="c1"># Activate from doc</span>
<span class="n">doc</span><span class="o">.</span><span class="n">activate</span><span class="p">(</span><span class="n">sheet</span><span class="p">)</span>
<span class="c1"># Activate from sheet</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">activate</span><span class="p">()</span>
</pre></div>
</div>
</section>
</section>
<section id="ranges">
<h2>Ranges<a class="headerlink" href="#ranges" title="Permalink to this headline"></a></h2>
<section id="cells">
<h3>Cells<a class="headerlink" href="#cells" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>By name</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">cell</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1&#39;</span><span class="p">]</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">cell</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>By position [row, column]</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">cell</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">4</span><span class="p">]</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">cell</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="id1">
<h3>Ranges<a class="headerlink" href="#id1" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>By name</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;B2:D5&#39;</span><span class="p">]</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">rango</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>By position [start_row:end_row, start_column:end_column]</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="mi">5</span><span class="p">,</span><span class="mi">1</span><span class="p">:</span><span class="mi">4</span><span class="p">]</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">rango</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Group ranges</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">sheet</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">active</span>
<span class="n">last</span> <span class="o">=</span> <span class="n">doc</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
<span class="k">with</span> <span class="n">doc</span><span class="o">.</span><span class="n">ranges</span> <span class="k">as</span> <span class="n">r</span><span class="p">:</span>
<span class="c1"># Add one range</span>
<span class="n">r</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1:B2&#39;</span><span class="p">])</span>
<span class="n">r2</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;C4:D5&#39;</span><span class="p">]</span>
<span class="n">r3</span> <span class="o">=</span> <span class="n">last</span><span class="p">[</span><span class="s1">&#39;E7:D8&#39;</span><span class="p">]</span>
<span class="n">r4</span> <span class="o">=</span> <span class="n">last</span><span class="p">[</span><span class="s1">&#39;E10:F12&#39;</span><span class="p">]</span>
<span class="c1"># Add multiple ranges</span>
<span class="n">r</span><span class="o">.</span><span class="n">add</span><span class="p">((</span><span class="n">r2</span><span class="p">,</span> <span class="n">r3</span><span class="p">,</span> <span class="n">r4</span><span class="p">))</span>
<span class="n">app</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">r</span><span class="o">.</span><span class="n">names</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Get the same range in all sheets</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">ranges</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">get_ranges</span><span class="p">(</span><span class="s1">&#39;A1:B1&#39;</span><span class="p">)</span>
<span class="n">app</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">ranges</span><span class="o">.</span><span class="n">names</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Get columns by name.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;B:B&#39;</span><span class="p">]</span>
<span class="n">app</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">rango</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
<span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;D:F&#39;</span><span class="p">]</span>
<span class="n">app</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">rango</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Get columns by position.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="c1"># Column B</span>
<span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="mi">0</span><span class="p">:,</span><span class="mi">1</span><span class="p">]</span>
<span class="n">app</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">rango</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
<span class="c1"># Columnas D:F</span>
<span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="mi">0</span><span class="p">:,</span><span class="mi">3</span><span class="p">:</span><span class="mi">6</span><span class="p">]</span>
<span class="n">app</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">rango</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Get rows</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="c1"># One row</span>
<span class="n">row</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
<span class="n">app</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">row</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
<span class="c1"># Range rows</span>
<span class="n">row</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="mi">3</span><span class="p">:</span><span class="mi">10</span><span class="p">,</span><span class="mi">0</span><span class="p">:]</span>
<span class="n">app</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">row</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="info-ranges">
<h3>Info ranges<a class="headerlink" href="#info-ranges" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>Get absolute name</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1:E10&#39;</span><span class="p">]</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">rango</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Get address</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1&#39;</span><span class="p">]</span>
<span class="n">a</span> <span class="o">=</span> <span class="n">rango</span><span class="o">.</span><span class="n">address</span>
<span class="n">data</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;&quot;&quot;Cell Address</span>
<span class="s2">Row: </span><span class="si">{</span><span class="n">a</span><span class="o">.</span><span class="n">Row</span><span class="si">}</span><span class="s2"></span>
<span class="s2">Column: </span><span class="si">{</span><span class="n">a</span><span class="o">.</span><span class="n">Column</span><span class="si">}</span><span class="s2"></span>
<span class="s2">&quot;&quot;&quot;</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
<span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1:E10&#39;</span><span class="p">]</span>
<span class="n">ra</span> <span class="o">=</span> <span class="n">rango</span><span class="o">.</span><span class="n">range_address</span>
<span class="n">data</span> <span class="o">=</span> <span class="p">(</span>
<span class="sa">f</span><span class="s1">&#39;Range Address:</span><span class="se">\n\n</span><span class="s1">&#39;</span>
<span class="sa">f</span><span class="s1">&#39;Star Row: </span><span class="si">{</span><span class="n">ra</span><span class="o">.</span><span class="n">StartRow</span><span class="si">}</span><span class="se">\n</span><span class="s1">&#39;</span>
<span class="sa">f</span><span class="s1">&#39;End Row: </span><span class="si">{</span><span class="n">ra</span><span class="o">.</span><span class="n">EndRow</span><span class="si">}</span><span class="se">\n</span><span class="s1">&#39;</span>
<span class="sa">f</span><span class="s1">&#39;Star Column: </span><span class="si">{</span><span class="n">ra</span><span class="o">.</span><span class="n">StartColumn</span><span class="si">}</span><span class="se">\n</span><span class="s1">&#39;</span>
<span class="sa">f</span><span class="s1">&#39;End Column: </span><span class="si">{</span><span class="n">ra</span><span class="o">.</span><span class="n">EndColumn</span><span class="si">}</span><span class="se">\n</span><span class="s1">&#39;</span>
<span class="p">)</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="special-ranges">
<h3>Special ranges<a class="headerlink" href="#special-ranges" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>Get used area</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="o">.</span><span class="n">used_area</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">rango</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Get current region</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">current_region</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">rango</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Get next free cell</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">cell</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">next_cell</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">cell</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Get merged area</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">merged_area</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">rango</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Get visible cells</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">rangos</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1:E10&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">visible</span>
<span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">rangos</span><span class="p">:</span>
<span class="n">app</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">r</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Get empty cells</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">rangos</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1:E10&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">empty</span>
<span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">rangos</span><span class="p">:</span>
<span class="n">app</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">r</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
</section>
</section>
<section id="manipulate-ranges">
<h2>Manipulate ranges<a class="headerlink" href="#manipulate-ranges" title="Permalink to this headline"></a></h2>
</section>
</section>
@ -621,7 +139,7 @@
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="easymacro.html">Library easymacro.py</a><ul>
<li>Previous: <a href="application.html" title="previous chapter">Application</a></li>
<li>Next: <a href="writer.html" title="next chapter">Writer</a></li>
<li>Next: <a href="calc_doc.html" title="next chapter">Document</a></li>
</ul></li>
</ul></li>
</ul>

168
doc/build/main/calc_data.html vendored Normal file
View File

@ -0,0 +1,168 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>Data &#8212; ZAZ documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css" />
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Writer" href="writer.html" />
<link rel="prev" title="Manipulate ranges" href="calc_ranges2.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="data">
<h1>Data<a class="headerlink" href="#data" title="Permalink to this headline"></a></h1>
<section id="read">
<h2>Read<a class="headerlink" href="#read" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>Get value from cell, automatic detect type and get value.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">cell</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1&#39;</span><span class="p">]</span>
<span class="n">value</span> <span class="o">=</span> <span class="n">cell</span><span class="o">.</span><span class="n">value</span>
<span class="n">info</span> <span class="o">=</span> <span class="sa">f</span><span class="s1">&#39;Cell Type = </span><span class="si">{</span><span class="n">cell</span><span class="o">.</span><span class="n">type</span><span class="si">}</span><span class="se">\n\n</span><span class="s1">Cell Value = </span><span class="si">{</span><span class="n">cell</span><span class="o">.</span><span class="n">value</span><span class="si">}</span><span class="s1">&#39;</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">info</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="write">
<h2>Write<a class="headerlink" href="#write" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>Automatic detect data type.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="c1"># ~ Set int</span>
<span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="mi">1</span>
<span class="c1"># ~ Set float</span>
<span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A2&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="mf">10.5</span>
<span class="c1"># ~ Set string</span>
<span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A3&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="s1">&#39;Damn World&#39;</span>
<span class="c1"># ~ Set date</span>
<span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A4&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">today</span><span class="p">()</span>
<span class="c1"># ~ Set time</span>
<span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A5&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">now</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
<span class="c1"># ~ Set datetime</span>
<span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A6&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">now</span><span class="p">()</span>
</pre></div>
</div>
</section>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">ZAZ</a></h1>
<h3>Navigation</h3>
<p class="caption"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="intro.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="config.html">Configuration</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="easymacro.html">Library easymacro.py</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="tools_for_debug.html">Tools for debug</a></li>
<li class="toctree-l2"><a class="reference internal" href="tools.html">Tools</a></li>
<li class="toctree-l2"><a class="reference internal" href="paths.html">Paths and files</a></li>
<li class="toctree-l2"><a class="reference internal" href="email.html">Email</a></li>
<li class="toctree-l2"><a class="reference internal" href="application.html">Application</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="calc.html">Calc</a></li>
<li class="toctree-l2"><a class="reference internal" href="writer.html">Writer</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html">Base</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="examples.html">Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="apendixes.html">Apendixes</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="easymacro.html">Library easymacro.py</a><ul>
<li><a href="calc.html">Calc</a><ul>
<li>Previous: <a href="calc_ranges2.html" title="previous chapter">Manipulate ranges</a></li>
<li>Next: <a href="writer.html" title="next chapter">Writer</a></li>
</ul></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2021, Mauricio Baeza.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.0.2</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/main/calc_data.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

171
doc/build/main/calc_doc.html vendored Normal file
View File

@ -0,0 +1,171 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>Document &#8212; ZAZ documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css" />
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Sheets" href="calc_sheets.html" />
<link rel="prev" title="Calc" href="calc.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="document">
<h1>Document<a class="headerlink" href="#document" title="Permalink to this headline"></a></h1>
<section id="current-doc">
<h2>Current doc<a class="headerlink" href="#current-doc" title="Permalink to this headline"></a></h2>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">doc</span><span class="o">.</span><span class="n">type</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="selection">
<h2>Selection<a class="headerlink" href="#selection" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>If selection is range get LOCalcRange, if selection is shape get LOShape, other selection get original pyuno object.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">selection</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">selection</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="nb">type</span><span class="p">(</span><span class="n">selection</span><span class="p">))</span>
</pre></div>
</div>
</section>
<section id="headers">
<h2>Headers<a class="headerlink" href="#headers" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>Hide or show columns and rows headers.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">doc</span><span class="o">.</span><span class="n">headers</span><span class="p">)</span>
<span class="n">doc</span><span class="o">.</span><span class="n">headers</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">doc</span><span class="o">.</span><span class="n">headers</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">doc</span><span class="o">.</span><span class="n">headers</span><span class="p">)</span>
<span class="n">doc</span><span class="o">.</span><span class="n">headers</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">doc</span><span class="o">.</span><span class="n">headers</span>
</pre></div>
</div>
</section>
<section id="tabs">
<h2>Tabs<a class="headerlink" href="#tabs" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>Hide or show tab sheets.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">doc</span><span class="o">.</span><span class="n">tabs</span><span class="p">)</span>
<span class="n">doc</span><span class="o">.</span><span class="n">tabs</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">doc</span><span class="o">.</span><span class="n">tabs</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">doc</span><span class="o">.</span><span class="n">tabs</span><span class="p">)</span>
<span class="n">doc</span><span class="o">.</span><span class="n">tabs</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">doc</span><span class="o">.</span><span class="n">tabs</span>
</pre></div>
</div>
</section>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">ZAZ</a></h1>
<h3>Navigation</h3>
<p class="caption"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="intro.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="config.html">Configuration</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="easymacro.html">Library easymacro.py</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="tools_for_debug.html">Tools for debug</a></li>
<li class="toctree-l2"><a class="reference internal" href="tools.html">Tools</a></li>
<li class="toctree-l2"><a class="reference internal" href="paths.html">Paths and files</a></li>
<li class="toctree-l2"><a class="reference internal" href="email.html">Email</a></li>
<li class="toctree-l2"><a class="reference internal" href="application.html">Application</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="calc.html">Calc</a></li>
<li class="toctree-l2"><a class="reference internal" href="writer.html">Writer</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html">Base</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="examples.html">Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="apendixes.html">Apendixes</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="easymacro.html">Library easymacro.py</a><ul>
<li><a href="calc.html">Calc</a><ul>
<li>Previous: <a href="calc.html" title="previous chapter">Calc</a></li>
<li>Next: <a href="calc_sheets.html" title="next chapter">Sheets</a></li>
</ul></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2021, Mauricio Baeza.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.0.2</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/main/calc_doc.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

310
doc/build/main/calc_ranges.html vendored Normal file
View File

@ -0,0 +1,310 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>Cell and ranges &#8212; ZAZ documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css" />
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Data" href="calc_data.html" />
<link rel="prev" title="Sheets" href="calc_sheets.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="cell-and-ranges">
<h1>Cell and ranges<a class="headerlink" href="#cell-and-ranges" title="Permalink to this headline"></a></h1>
<section id="cells">
<h2>Cells<a class="headerlink" href="#cells" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>By name</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">cell</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1&#39;</span><span class="p">]</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">cell</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>By position [row, column]</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">cell</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">4</span><span class="p">]</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">cell</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="ranges">
<h2>Ranges<a class="headerlink" href="#ranges" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>By name</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;B2:D5&#39;</span><span class="p">]</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">rango</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>By position [start_row:end_row, start_column:end_column]</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="mi">5</span><span class="p">,</span><span class="mi">1</span><span class="p">:</span><span class="mi">4</span><span class="p">]</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">rango</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Group ranges</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">sheet</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">active</span>
<span class="n">last</span> <span class="o">=</span> <span class="n">doc</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
<span class="k">with</span> <span class="n">doc</span><span class="o">.</span><span class="n">ranges</span> <span class="k">as</span> <span class="n">r</span><span class="p">:</span>
<span class="c1"># Add one range</span>
<span class="n">r</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1:B2&#39;</span><span class="p">])</span>
<span class="n">r2</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;C4:D5&#39;</span><span class="p">]</span>
<span class="n">r3</span> <span class="o">=</span> <span class="n">last</span><span class="p">[</span><span class="s1">&#39;E7:D8&#39;</span><span class="p">]</span>
<span class="n">r4</span> <span class="o">=</span> <span class="n">last</span><span class="p">[</span><span class="s1">&#39;E10:F12&#39;</span><span class="p">]</span>
<span class="c1"># Add multiple ranges</span>
<span class="n">r</span><span class="o">.</span><span class="n">add</span><span class="p">((</span><span class="n">r2</span><span class="p">,</span> <span class="n">r3</span><span class="p">,</span> <span class="n">r4</span><span class="p">))</span>
<span class="n">app</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">r</span><span class="o">.</span><span class="n">names</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Get the same range in all sheets</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">ranges</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">get_ranges</span><span class="p">(</span><span class="s1">&#39;A1:B1&#39;</span><span class="p">)</span>
<span class="n">app</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">ranges</span><span class="o">.</span><span class="n">names</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Get columns by name.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;B:B&#39;</span><span class="p">]</span>
<span class="n">app</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">rango</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
<span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;D:F&#39;</span><span class="p">]</span>
<span class="n">app</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">rango</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Get columns by position.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="c1"># Column B</span>
<span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="mi">0</span><span class="p">:,</span><span class="mi">1</span><span class="p">]</span>
<span class="n">app</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">rango</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
<span class="c1"># Columnas D:F</span>
<span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="mi">0</span><span class="p">:,</span><span class="mi">3</span><span class="p">:</span><span class="mi">6</span><span class="p">]</span>
<span class="n">app</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">rango</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Get rows</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="c1"># One row</span>
<span class="n">row</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
<span class="n">app</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">row</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
<span class="c1"># Range rows</span>
<span class="n">row</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="mi">3</span><span class="p">:</span><span class="mi">10</span><span class="p">,</span><span class="mi">0</span><span class="p">:]</span>
<span class="n">app</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">row</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="info-ranges">
<h2>Info ranges<a class="headerlink" href="#info-ranges" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>Get absolute name</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1:E10&#39;</span><span class="p">]</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">rango</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Get address</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1&#39;</span><span class="p">]</span>
<span class="n">a</span> <span class="o">=</span> <span class="n">rango</span><span class="o">.</span><span class="n">address</span>
<span class="n">data</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;&quot;&quot;Cell Address</span>
<span class="s2">Row: </span><span class="si">{</span><span class="n">a</span><span class="o">.</span><span class="n">Row</span><span class="si">}</span><span class="s2"></span>
<span class="s2">Column: </span><span class="si">{</span><span class="n">a</span><span class="o">.</span><span class="n">Column</span><span class="si">}</span><span class="s2"></span>
<span class="s2">&quot;&quot;&quot;</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
<span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1:E10&#39;</span><span class="p">]</span>
<span class="n">ra</span> <span class="o">=</span> <span class="n">rango</span><span class="o">.</span><span class="n">range_address</span>
<span class="n">data</span> <span class="o">=</span> <span class="p">(</span>
<span class="sa">f</span><span class="s1">&#39;Range Address:</span><span class="se">\n\n</span><span class="s1">&#39;</span>
<span class="sa">f</span><span class="s1">&#39;Star Row: </span><span class="si">{</span><span class="n">ra</span><span class="o">.</span><span class="n">StartRow</span><span class="si">}</span><span class="se">\n</span><span class="s1">&#39;</span>
<span class="sa">f</span><span class="s1">&#39;End Row: </span><span class="si">{</span><span class="n">ra</span><span class="o">.</span><span class="n">EndRow</span><span class="si">}</span><span class="se">\n</span><span class="s1">&#39;</span>
<span class="sa">f</span><span class="s1">&#39;Star Column: </span><span class="si">{</span><span class="n">ra</span><span class="o">.</span><span class="n">StartColumn</span><span class="si">}</span><span class="se">\n</span><span class="s1">&#39;</span>
<span class="sa">f</span><span class="s1">&#39;End Column: </span><span class="si">{</span><span class="n">ra</span><span class="o">.</span><span class="n">EndColumn</span><span class="si">}</span><span class="se">\n</span><span class="s1">&#39;</span>
<span class="p">)</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="special-ranges">
<h2>Special ranges<a class="headerlink" href="#special-ranges" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>Get used area</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="o">.</span><span class="n">used_area</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">rango</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Get current region</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">current_region</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">rango</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Get next free cell</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">cell</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">next_cell</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">cell</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Get merged area</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">merged_area</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">rango</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Get visible cells</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">rangos</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1:E10&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">visible</span>
<span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">rangos</span><span class="p">:</span>
<span class="n">app</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">r</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Get empty cells</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">rangos</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1:E10&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">empty</span>
<span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">rangos</span><span class="p">:</span>
<span class="n">app</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">r</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
</section>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">ZAZ</a></h1>
<h3>Navigation</h3>
<p class="caption"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="intro.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="config.html">Configuration</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="easymacro.html">Library easymacro.py</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="tools_for_debug.html">Tools for debug</a></li>
<li class="toctree-l2"><a class="reference internal" href="tools.html">Tools</a></li>
<li class="toctree-l2"><a class="reference internal" href="paths.html">Paths and files</a></li>
<li class="toctree-l2"><a class="reference internal" href="email.html">Email</a></li>
<li class="toctree-l2"><a class="reference internal" href="application.html">Application</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="calc.html">Calc</a></li>
<li class="toctree-l2"><a class="reference internal" href="writer.html">Writer</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html">Base</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="examples.html">Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="apendixes.html">Apendixes</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="easymacro.html">Library easymacro.py</a><ul>
<li><a href="calc.html">Calc</a><ul>
<li>Previous: <a href="calc_sheets.html" title="previous chapter">Sheets</a></li>
<li>Next: <a href="calc_data.html" title="next chapter">Data</a></li>
</ul></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2021, Mauricio Baeza.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.0.2</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/main/calc_ranges.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

242
doc/build/main/calc_ranges2.html vendored Normal file
View File

@ -0,0 +1,242 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>Manipulate ranges &#8212; ZAZ documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css" />
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Data" href="calc_data.html" />
<link rel="prev" title="Cell and ranges" href="calc_ranges.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="manipulate-ranges">
<h1>Manipulate ranges<a class="headerlink" href="#manipulate-ranges" title="Permalink to this headline"></a></h1>
<p><strong>Not, not is necesary select range for manipulate</strong></p>
<section id="select">
<h2>Select<a class="headerlink" href="#select" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>Select from doc</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">cell</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1&#39;</span><span class="p">]</span>
<span class="n">doc</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">cell</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Select in self range</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1:C5&#39;</span><span class="p">]</span>
<span class="n">rango</span><span class="o">.</span><span class="n">select</span><span class="p">()</span>
</pre></div>
</div>
</section>
<section id="move">
<h2>Move<a class="headerlink" href="#move" title="Permalink to this headline"></a></h2>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1:C5&#39;</span><span class="p">]</span>
<span class="n">rango</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;E6&#39;</span><span class="p">])</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Move to other sheet</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">rango</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="n">doc</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="s1">&#39;E6&#39;</span><span class="p">])</span>
</pre></div>
</div>
</section>
<section id="insert">
<h2>Insert<a class="headerlink" href="#insert" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>Default insert down</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1:C1&#39;</span><span class="p">]</span>
<span class="n">rango</span><span class="o">.</span><span class="n">insert</span><span class="p">()</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Insert and move right</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">rango</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="n">app</span><span class="o">.</span><span class="n">CellInsertMode</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Insert entire rows</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">rango</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="n">app</span><span class="o">.</span><span class="n">CellInsertMode</span><span class="o">.</span><span class="n">ROWS</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Insert entire columns</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">rango</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="n">app</span><span class="o">.</span><span class="n">CellInsertMode</span><span class="o">.</span><span class="n">COLUMNS</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="delete">
<h2>Delete<a class="headerlink" href="#delete" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>Default move up</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1:C1&#39;</span><span class="p">]</span>
<span class="n">rango</span><span class="o">.</span><span class="n">delete</span><span class="p">()</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Delete and move left</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">rango</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="n">app</span><span class="o">.</span><span class="n">CellDeleteMode</span><span class="o">.</span><span class="n">LEFT</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Delete entire rows</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">rango</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="n">app</span><span class="o">.</span><span class="n">CellDeleteMode</span><span class="o">.</span><span class="n">ROWS</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Delete entire columns</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">rango</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="n">app</span><span class="o">.</span><span class="n">CellDeleteMode</span><span class="o">.</span><span class="n">COLUMNS</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="copy">
<h2>Copy<a class="headerlink" href="#copy" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>Using native method <cite>copyRange</cite>, current range always should be a cell and source should be a range.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">cell</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A5&#39;</span><span class="p">]</span>
<span class="n">source</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;D1:E4&#39;</span><span class="p">]</span>
<span class="n">cell</span><span class="o">.</span><span class="n">copy_from</span><span class="p">(</span><span class="n">source</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>From range to cell</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">rango</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;A1:C5&#39;</span><span class="p">]</span>
<span class="n">target</span> <span class="o">=</span> <span class="n">sheet</span><span class="p">[</span><span class="s1">&#39;E1&#39;</span><span class="p">]</span>
<span class="n">rango</span><span class="o">.</span><span class="n">copy_to</span><span class="p">(</span><span class="n">target</span><span class="p">)</span>
</pre></div>
</div>
</section>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">ZAZ</a></h1>
<h3>Navigation</h3>
<p class="caption"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="intro.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="config.html">Configuration</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="easymacro.html">Library easymacro.py</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="tools_for_debug.html">Tools for debug</a></li>
<li class="toctree-l2"><a class="reference internal" href="tools.html">Tools</a></li>
<li class="toctree-l2"><a class="reference internal" href="paths.html">Paths and files</a></li>
<li class="toctree-l2"><a class="reference internal" href="email.html">Email</a></li>
<li class="toctree-l2"><a class="reference internal" href="application.html">Application</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="calc.html">Calc</a></li>
<li class="toctree-l2"><a class="reference internal" href="writer.html">Writer</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html">Base</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="examples.html">Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="apendixes.html">Apendixes</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="easymacro.html">Library easymacro.py</a><ul>
<li><a href="calc.html">Calc</a><ul>
<li>Previous: <a href="calc_ranges.html" title="previous chapter">Cell and ranges</a></li>
<li>Next: <a href="calc_data.html" title="next chapter">Data</a></li>
</ul></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2021, Mauricio Baeza.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.0.2</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/main/calc_ranges2.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

426
doc/build/main/calc_sheets.html vendored Normal file
View File

@ -0,0 +1,426 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>Sheets &#8212; ZAZ documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css" />
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Data" href="calc_data.html" />
<link rel="prev" title="Document" href="calc_doc.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="sheets">
<h1>Sheets<a class="headerlink" href="#sheets" title="Permalink to this headline"></a></h1>
<section id="active-sheet">
<h2>Active sheet<a class="headerlink" href="#active-sheet" title="Permalink to this headline"></a></h2>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
<span class="c1"># or</span>
<span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">sheet</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">active</span>
</pre></div>
</div>
</section>
<section id="get-by-index">
<h2>Get by index<a class="headerlink" href="#get-by-index" title="Permalink to this headline"></a></h2>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">sheet</span> <span class="o">=</span> <span class="n">doc</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="get-by-name">
<h2>Get by name<a class="headerlink" href="#get-by-name" title="Permalink to this headline"></a></h2>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">sheet</span> <span class="o">=</span> <span class="n">doc</span><span class="p">[</span><span class="s1">&#39;Sheet1&#39;</span><span class="p">]</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="contains">
<h2>Contains<a class="headerlink" href="#contains" title="Permalink to this headline"></a></h2>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="s1">&#39;Sheet1&#39;</span> <span class="ow">in</span> <span class="n">doc</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="get-tuple-with-all-names">
<h2>Get tuple with all names<a class="headerlink" href="#get-tuple-with-all-names" title="Permalink to this headline"></a></h2>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">doc</span><span class="o">.</span><span class="n">names</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="count">
<h2>Count<a class="headerlink" href="#count" title="Permalink to this headline"></a></h2>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">doc</span><span class="p">))</span>
</pre></div>
</div>
</section>
<section id="new">
<h2>New<a class="headerlink" href="#new" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>Always validate if new name not exists.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">sheet</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">new_sheet</span><span class="p">()</span>
<span class="c1"># CAUTION: If &#39;NewSheet&#39; exists, reset it to clean sheet.</span>
<span class="n">doc</span><span class="p">[</span><span class="s1">&#39;NewSheet&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">sheet</span>
<span class="c1"># ~ or</span>
<span class="n">sheet</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="s1">&#39;NewSheet2&#39;</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Insert multiple, get last insert.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">names</span> <span class="o">=</span> <span class="p">(</span><span class="s1">&#39;One&#39;</span><span class="p">,</span> <span class="s1">&#39;Two&#39;</span><span class="p">,</span> <span class="s1">&#39;Three&#39;</span><span class="p">)</span>
<span class="n">sheet</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="n">names</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="move">
<h2>Move<a class="headerlink" href="#move" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>Move by object to last position.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">doc</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
<span class="n">doc</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="n">sheet</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Move by name to last position.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="s1">&#39;Sheet1&#39;</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Move to position.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">doc</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
<span class="n">doc</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="n">sheet</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Move from sheet</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">move</span><span class="p">()</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Move to position.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="remove">
<h2>Remove<a class="headerlink" href="#remove" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>Remove by object.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">doc</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
<span class="n">doc</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">sheet</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Remove by name.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="s1">&#39;One&#39;</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Remove from sheet.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">remove</span><span class="p">()</span>
</pre></div>
</div>
</section>
<section id="copy">
<h2>Copy<a class="headerlink" href="#copy" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>Copy inside the same spreadsheet.</p></li>
<li><p>By object</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">doc</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
<span class="n">doc</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="n">sheet</span><span class="p">,</span> <span class="s1">&#39;OtherSheet&#39;</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>By name</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="s1">&#39;Sheet1&#39;</span><span class="p">,</span> <span class="s1">&#39;Sheet2&#39;</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>From sheet</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s1">&#39;_2&#39;</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="copy-from">
<h2>Copy from<a class="headerlink" href="#copy-from" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>Copy sheet from one spreadsheet to other.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">doc_source</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">docs</span><span class="p">[</span><span class="s1">&#39;Contacts.ods&#39;</span><span class="p">]</span>
<span class="n">name_source</span> <span class="o">=</span> <span class="s1">&#39;Names&#39;</span>
<span class="n">name_target</span> <span class="o">=</span> <span class="s1">&#39;Names&#39;</span>
<span class="n">position</span> <span class="o">=</span> <span class="mi">0</span>
<span class="n">doc</span><span class="o">.</span><span class="n">copy_from</span><span class="p">(</span><span class="n">doc_source</span><span class="p">,</span> <span class="n">name_source</span><span class="p">,</span> <span class="n">name_target</span><span class="p">,</span> <span class="n">position</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="copy-to">
<h2>Copy to<a class="headerlink" href="#copy-to" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>Copy from sheet with the same name</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">docs</span><span class="o">.</span><span class="n">new</span><span class="p">()</span>
<span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">copy_to</span><span class="p">(</span><span class="n">doc</span><span class="p">)</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Used new name</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">docs</span><span class="o">.</span><span class="n">new</span><span class="p">()</span>
<span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">copy_to</span><span class="p">(</span><span class="n">doc</span><span class="p">,</span> <span class="s1">&#39;NewName&#39;</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="sort">
<h2>Sort<a class="headerlink" href="#sort" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>Sort sheets by names.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="n">doc</span><span class="o">.</span><span class="n">sort</span><span class="p">()</span>
</pre></div>
</div>
</section>
<section id="name">
<h2>Name<a class="headerlink" href="#name" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>Name visible by the user.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="s1">&#39;NewName&#39;</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="code-name">
<h2>Code name<a class="headerlink" href="#code-name" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>Name only accessible by code.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">code_name</span><span class="p">)</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">code_name</span> <span class="o">=</span> <span class="s1">&#39;my_name&#39;</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">code_name</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="visible">
<h2>Visible<a class="headerlink" href="#visible" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>Apply only with spreadsheet with two or more sheets.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">visible</span><span class="p">)</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">visible</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">sheet</span><span class="o">.</span><span class="n">visible</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">visible</span><span class="p">)</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">visible</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">sheet</span><span class="o">.</span><span class="n">visible</span>
</pre></div>
</div>
</section>
<section id="is-protected">
<h2>Is protected<a class="headerlink" href="#is-protected" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>If sheet is protected with password.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">is_protected</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="set-password">
<h2>Set password<a class="headerlink" href="#set-password" title="Permalink to this headline"></a></h2>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">password</span> <span class="o">=</span> <span class="s1">&#39;letmein&#39;</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">is_protected</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="remove-password">
<h2>Remove password<a class="headerlink" href="#remove-password" title="Permalink to this headline"></a></h2>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">password</span> <span class="o">=</span> <span class="s1">&#39;letmein&#39;</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">is_protected</span><span class="p">)</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">unprotect</span><span class="p">(</span><span class="s1">&#39;letmein&#39;</span><span class="p">)</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">is_protected</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="tab-color">
<h2>Tab color<a class="headerlink" href="#tab-color" title="Permalink to this headline"></a></h2>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">sheet</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active_sheet</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">color</span><span class="p">)</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">color</span> <span class="o">=</span> <span class="s1">&#39;red&#39;</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">color</span><span class="p">)</span>
<span class="c1"># RGB</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">color</span> <span class="o">=</span> <span class="p">(</span><span class="mi">125</span><span class="p">,</span> <span class="mi">200</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
<span class="n">app</span><span class="o">.</span><span class="n">msgbox</span><span class="p">(</span><span class="n">sheet</span><span class="o">.</span><span class="n">color</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="document-parent">
<h2>Document parent<a class="headerlink" href="#document-parent" title="Permalink to this headline"></a></h2>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">sheet</span><span class="o">.</span><span class="n">doc</span>
</pre></div>
</div>
</section>
<section id="activate">
<h2>Activate<a class="headerlink" href="#activate" title="Permalink to this headline"></a></h2>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">doc</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">active</span>
<span class="c1"># Get last sheet</span>
<span class="n">sheet</span> <span class="o">=</span> <span class="n">doc</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
<span class="c1"># Activate from doc</span>
<span class="n">doc</span><span class="o">.</span><span class="n">activate</span><span class="p">(</span><span class="n">sheet</span><span class="p">)</span>
<span class="c1"># Activate from sheet</span>
<span class="n">sheet</span><span class="o">.</span><span class="n">activate</span><span class="p">()</span>
</pre></div>
</div>
</section>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">ZAZ</a></h1>
<h3>Navigation</h3>
<p class="caption"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="intro.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="config.html">Configuration</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="easymacro.html">Library easymacro.py</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="tools_for_debug.html">Tools for debug</a></li>
<li class="toctree-l2"><a class="reference internal" href="tools.html">Tools</a></li>
<li class="toctree-l2"><a class="reference internal" href="paths.html">Paths and files</a></li>
<li class="toctree-l2"><a class="reference internal" href="email.html">Email</a></li>
<li class="toctree-l2"><a class="reference internal" href="application.html">Application</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="calc.html">Calc</a></li>
<li class="toctree-l2"><a class="reference internal" href="writer.html">Writer</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html">Base</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="examples.html">Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="apendixes.html">Apendixes</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="easymacro.html">Library easymacro.py</a><ul>
<li><a href="calc.html">Calc</a><ul>
<li>Previous: <a href="calc_doc.html" title="previous chapter">Document</a></li>
<li>Next: <a href="calc_data.html" title="next chapter">Data</a></li>
</ul></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2021, Mauricio Baeza.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.0.2</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/main/calc_sheets.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View File

@ -140,10 +140,11 @@
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="calc.html">Calc</a><ul>
<li class="toctree-l2"><a class="reference internal" href="calc.html#document">Document</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc.html#sheets">Sheets</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc.html#ranges">Ranges</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc.html#manipulate-ranges">Manipulate ranges</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_doc.html">Document</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_sheets.html">Sheets</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_ranges.html">Cell and ranges</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_ranges2.html">Manipulate ranges</a></li>
<li class="toctree-l2"><a class="reference internal" href="calc_data.html">Data</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="writer.html">Writer</a><ul>

BIN
doc/build/objects.inv vendored

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,3 @@
Calc
----
@ -9,583 +8,11 @@ Remember, always import library.
import easymacro as app
Document
~~~~~~~~
Current doc
^^^^^^^^^^^
.. code-block:: python
doc = app.active
app.msgbox(doc.type)
Selection
^^^^^^^^^
* If selection is range get LOCalcRange, if selection is shape get LOShape, other selection get original pyuno object.
.. code-block:: python
doc = app.active
selection = doc.selection
app.msgbox(type(selection))
Headers
^^^^^^^
* Hide or show columns and rows headers.
.. code-block:: python
doc = app.active
app.msgbox(doc.headers)
doc.headers = not doc.headers
app.msgbox(doc.headers)
doc.headers = not doc.headers
Tabs
^^^^
* Hide or show tab sheets.
.. code-block:: python
doc = app.active
app.msgbox(doc.tabs)
doc.tabs = not doc.tabs
app.msgbox(doc.tabs)
doc.tabs = not doc.tabs
Sheets
~~~~~~
Active sheet
^^^^^^^^^^^^
.. code-block:: python
sheet = app.active_sheet
app.msgbox(sheet.name)
# or
doc = app.active
sheet = doc.active
Get by index
^^^^^^^^^^^^
.. code-block:: python
doc = app.active
sheet = doc[0]
app.msgbox(sheet.name)
Get by name
^^^^^^^^^^^
.. code-block:: python
doc = app.active
sheet = doc['Sheet1']
app.msgbox(sheet.name)
Contains
^^^^^^^^
.. code-block:: python
doc = app.active
app.msgbox('Sheet1' in doc)
Get tuple with all names
^^^^^^^^^^^^^^^^^^^^^^^^
.. code-block:: python
doc = app.active
app.msgbox(doc.names)
Count
^^^^^
.. code-block:: python
doc = app.active
app.msgbox(len(doc))
New
^^^
* Always validate if new name not exists.
.. code-block:: python
doc = app.active
sheet = doc.new_sheet()
# CAUTION: If 'NewSheet' exists, reset it to clean sheet.
doc['NewSheet'] = sheet
# ~ or
sheet = doc.insert('NewSheet2')
* Insert multiple, get last insert.
.. code-block:: python
names = ('One', 'Two', 'Three')
sheet = doc.insert(names)
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 = app.active_sheet
sheet.move()
* Move to position.
.. code-block:: python
sheet = app.active_sheet
sheet.move(2)
Remove
^^^^^^
* Remove by object.
.. 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 = app.active_sheet
sheet.remove()
Copy
^^^^
* Copy inside the same spreadsheet.
* By object
.. code-block:: python
sheet = doc[0]
doc.copy(sheet, 'OtherSheet')
* By name
.. code-block:: python
doc.copy('Sheet1', 'Sheet2')
* From sheet
.. code-block:: python
sheet = app.active_sheet
sheet.copy(sheet.name + '_2')
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)
Copy to
^^^^^^^
* Copy from sheet with the same name
.. code-block:: python
doc = app.docs.new()
sheet = app.active_sheet
sheet.copy_to(doc)
* Used new name
.. code-block:: python
doc = app.docs.new()
sheet = app.active_sheet
sheet.copy_to(doc, 'NewName')
Sort
^^^^
* Sort sheets by names.
.. code-block:: python
doc = app.active
doc.sort()
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()
Ranges
~~~~~~
Cells
^^^^^
* By name
.. code-block:: python
sheet = app.active_sheet
cell = sheet['A1']
app.msgbox(cell.name)
* By position [row, column]
.. code-block:: python
cell = sheet[1, 4]
app.msgbox(cell.name)
Ranges
^^^^^^
* By name
.. code-block:: python
sheet = app.active_sheet
rango = sheet['B2:D5']
app.msgbox(rango.name)
* By position [start_row:end_row, start_column:end_column]
.. code-block:: python
rango = sheet[1:5,1:4]
app.msgbox(rango.name)
* Group ranges
.. code-block:: python
doc = app.active
sheet = doc.active
last = doc[-1]
with doc.ranges as r:
# Add one range
r.add(sheet['A1:B2'])
r2 = sheet['C4:D5']
r3 = last['E7:D8']
r4 = last['E10:F12']
# Add multiple ranges
r.add((r2, r3, r4))
app.debug(r.names)
* Get the same range in all sheets
.. code-block:: python
ranges = doc.get_ranges('A1:B1')
app.debug(ranges.names)
* Get columns by name.
.. code-block:: python
sheet = app.active_sheet
rango = sheet['B:B']
app.debug(rango.name)
rango = sheet['D:F']
app.debug(rango.name)
* Get columns by position.
.. code-block:: python
sheet = app.active_sheet
# Column B
rango = sheet[0:,1]
app.debug(rango.name)
# Columnas D:F
rango = sheet[0:,3:6]
app.debug(rango.name)
* Get rows
.. code-block:: python
sheet = app.active_sheet
# One row
row = sheet[1]
app.debug(row.name)
# Range rows
row = sheet[3:10,0:]
app.debug(row.name)
Info ranges
^^^^^^^^^^^
* Get absolute name
.. code-block:: python
sheet = app.active_sheet
rango = sheet['A1:E10']
app.msgbox(rango.name)
* Get address
.. code-block:: python
sheet = app.active_sheet
rango = sheet['A1']
a = rango.address
data = f"""Cell Address
Row: {a.Row}
Column: {a.Column}
"""
app.msgbox(data)
rango = sheet['A1:E10']
ra = rango.range_address
data = (
f'Range Address:\n\n'
f'Star Row: {ra.StartRow}\n'
f'End Row: {ra.EndRow}\n'
f'Star Column: {ra.StartColumn}\n'
f'End Column: {ra.EndColumn}\n'
)
app.msgbox(data)
Special ranges
^^^^^^^^^^^^^^
* Get used area
.. code-block:: python
sheet = app.active_sheet
rango = sheet.used_area
app.msgbox(rango.name)
* Get current region
.. code-block:: python
rango = sheet['A1'].current_region
app.msgbox(rango.name)
* Get next free cell
.. code-block:: python
cell = sheet['A1'].next_cell
app.msgbox(cell.name)
* Get merged area
.. code-block:: python
sheet = app.active_sheet
rango = sheet['A1'].merged_area
app.msgbox(rango.name)
* Get visible cells
.. code-block:: python
sheet = app.active_sheet
rangos = sheet['A1:E10'].visible
for r in rangos:
app.debug(r.name)
* Get empty cells
.. code-block:: python
sheet = app.active_sheet
rangos = sheet['A1:E10'].empty
for r in rangos:
app.debug(r.name)
Manipulate ranges
~~~~~~~~~~~~~~~~~
.. toctree::
:maxdepth: 2
calc_doc.rst
calc_sheets.rst
calc_ranges.rst
calc_ranges2.rst
calc_data.rst

View File

@ -0,0 +1,45 @@
Data
~~~~
Read
^^^^
* Get value from cell, automatic detect type and get value.
.. code-block:: python
sheet = app.active_sheet
cell = sheet['A1']
value = cell.value
info = f'Cell Type = {cell.type}\n\nCell Value = {cell.value}'
app.msgbox(info)
Write
^^^^^
* Automatic detect data type.
.. code-block:: python
sheet = app.active_sheet
# ~ Set int
sheet['A1'].value = 1
# ~ Set float
sheet['A2'].value = 10.5
# ~ Set string
sheet['A3'].value = 'Damn World'
# ~ Set date
sheet['A4'].value = app.today()
# ~ Set time
sheet['A5'].value = app.now(True)
# ~ Set datetime
sheet['A6'].value = app.now()

View File

@ -0,0 +1,50 @@
Document
~~~~~~~~
Current doc
^^^^^^^^^^^
.. code-block:: python
doc = app.active
app.msgbox(doc.type)
Selection
^^^^^^^^^
* If selection is range get LOCalcRange, if selection is shape get LOShape, other selection get original pyuno object.
.. code-block:: python
doc = app.active
selection = doc.selection
app.msgbox(type(selection))
Headers
^^^^^^^
* Hide or show columns and rows headers.
.. code-block:: python
doc = app.active
app.msgbox(doc.headers)
doc.headers = not doc.headers
app.msgbox(doc.headers)
doc.headers = not doc.headers
Tabs
^^^^
* Hide or show tab sheets.
.. code-block:: python
doc = app.active
app.msgbox(doc.tabs)
doc.tabs = not doc.tabs
app.msgbox(doc.tabs)
doc.tabs = not doc.tabs

View File

@ -0,0 +1,190 @@
Cell and ranges
~~~~~~~~~~~~~~~
Cells
^^^^^
* By name
.. code-block:: python
sheet = app.active_sheet
cell = sheet['A1']
app.msgbox(cell.name)
* By position [row, column]
.. code-block:: python
cell = sheet[1, 4]
app.msgbox(cell.name)
Ranges
^^^^^^
* By name
.. code-block:: python
sheet = app.active_sheet
rango = sheet['B2:D5']
app.msgbox(rango.name)
* By position [start_row:end_row, start_column:end_column]
.. code-block:: python
rango = sheet[1:5,1:4]
app.msgbox(rango.name)
* Group ranges
.. code-block:: python
doc = app.active
sheet = doc.active
last = doc[-1]
with doc.ranges as r:
# Add one range
r.add(sheet['A1:B2'])
r2 = sheet['C4:D5']
r3 = last['E7:D8']
r4 = last['E10:F12']
# Add multiple ranges
r.add((r2, r3, r4))
app.debug(r.names)
* Get the same range in all sheets
.. code-block:: python
ranges = doc.get_ranges('A1:B1')
app.debug(ranges.names)
* Get columns by name.
.. code-block:: python
sheet = app.active_sheet
rango = sheet['B:B']
app.debug(rango.name)
rango = sheet['D:F']
app.debug(rango.name)
* Get columns by position.
.. code-block:: python
sheet = app.active_sheet
# Column B
rango = sheet[0:,1]
app.debug(rango.name)
# Columnas D:F
rango = sheet[0:,3:6]
app.debug(rango.name)
* Get rows
.. code-block:: python
sheet = app.active_sheet
# One row
row = sheet[1]
app.debug(row.name)
# Range rows
row = sheet[3:10,0:]
app.debug(row.name)
Info ranges
^^^^^^^^^^^
* Get absolute name
.. code-block:: python
sheet = app.active_sheet
rango = sheet['A1:E10']
app.msgbox(rango.name)
* Get address
.. code-block:: python
sheet = app.active_sheet
rango = sheet['A1']
a = rango.address
data = f"""Cell Address
Row: {a.Row}
Column: {a.Column}
"""
app.msgbox(data)
rango = sheet['A1:E10']
ra = rango.range_address
data = (
f'Range Address:\n\n'
f'Star Row: {ra.StartRow}\n'
f'End Row: {ra.EndRow}\n'
f'Star Column: {ra.StartColumn}\n'
f'End Column: {ra.EndColumn}\n'
)
app.msgbox(data)
Special ranges
^^^^^^^^^^^^^^
* Get used area
.. code-block:: python
sheet = app.active_sheet
rango = sheet.used_area
app.msgbox(rango.name)
* Get current region
.. code-block:: python
rango = sheet['A1'].current_region
app.msgbox(rango.name)
* Get next free cell
.. code-block:: python
cell = sheet['A1'].next_cell
app.msgbox(cell.name)
* Get merged area
.. code-block:: python
sheet = app.active_sheet
rango = sheet['A1'].merged_area
app.msgbox(rango.name)
* Get visible cells
.. code-block:: python
sheet = app.active_sheet
rangos = sheet['A1:E10'].visible
for r in rangos:
app.debug(r.name)
* Get empty cells
.. code-block:: python
sheet = app.active_sheet
rangos = sheet['A1:E10'].empty
for r in rangos:
app.debug(r.name)

View File

@ -0,0 +1,124 @@
Manipulate ranges
~~~~~~~~~~~~~~~~~
**Not, not is necesary select range for manipulate**
Select
^^^^^^
* Select from doc
.. code-block:: python
doc = app.active
sheet = app.active_sheet
cell = sheet['A1']
doc.select(cell)
* Select in self range
.. code-block:: python
sheet = app.active_sheet
rango = sheet['A1:C5']
rango.select()
Move
^^^^
.. code-block:: python
sheet = app.active_sheet
rango = sheet['A1:C5']
rango.move(sheet['E6'])
* Move to other sheet
.. code-block:: python
rango.move(doc[-1]['E6'])
Insert
^^^^^^
* Default insert down
.. code-block:: python
sheet = app.active_sheet
rango = sheet['A1:C1']
rango.insert()
* Insert and move right
.. code-block:: python
rango.insert(app.CellInsertMode.RIGHT)
* Insert entire rows
.. code-block:: python
rango.insert(app.CellInsertMode.ROWS)
* Insert entire columns
.. code-block:: python
rango.insert(app.CellInsertMode.COLUMNS)
Delete
^^^^^^
* Default move up
.. code-block:: python
sheet = app.active_sheet
rango = sheet['A1:C1']
rango.delete()
* Delete and move left
.. code-block:: python
rango.delete(app.CellDeleteMode.LEFT)
* Delete entire rows
.. code-block:: python
rango.delete(app.CellDeleteMode.ROWS)
* Delete entire columns
.. code-block:: python
rango.delete(app.CellDeleteMode.COLUMNS)
Copy
^^^^
* Using native method `copyRange`, current range always should be a cell and source should be a range.
.. code-block:: python
sheet = app.active_sheet
cell = sheet['A5']
source = sheet['D1:E4']
cell.copy_from(source)
* From range to cell
.. code-block:: python
sheet = app.active_sheet
rango = sheet['A1:C5']
target = sheet['E1']
rango.copy_to(target)

View File

@ -0,0 +1,332 @@
Sheets
~~~~~~
Active sheet
^^^^^^^^^^^^
.. code-block:: python
sheet = app.active_sheet
app.msgbox(sheet.name)
# or
doc = app.active
sheet = doc.active
Get by index
^^^^^^^^^^^^
.. code-block:: python
doc = app.active
sheet = doc[0]
app.msgbox(sheet.name)
Get by name
^^^^^^^^^^^
.. code-block:: python
doc = app.active
sheet = doc['Sheet1']
app.msgbox(sheet.name)
Contains
^^^^^^^^
.. code-block:: python
doc = app.active
app.msgbox('Sheet1' in doc)
Get tuple with all names
^^^^^^^^^^^^^^^^^^^^^^^^
.. code-block:: python
doc = app.active
app.msgbox(doc.names)
Count
^^^^^
.. code-block:: python
doc = app.active
app.msgbox(len(doc))
New
^^^
* Always validate if new name not exists.
.. code-block:: python
doc = app.active
sheet = doc.new_sheet()
# CAUTION: If 'NewSheet' exists, reset it to clean sheet.
doc['NewSheet'] = sheet
# ~ or
sheet = doc.insert('NewSheet2')
* Insert multiple, get last insert.
.. code-block:: python
names = ('One', 'Two', 'Three')
sheet = doc.insert(names)
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 = app.active_sheet
sheet.move()
* Move to position.
.. code-block:: python
sheet = app.active_sheet
sheet.move(2)
Remove
^^^^^^
* Remove by object.
.. 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 = app.active_sheet
sheet.remove()
Copy
^^^^
* Copy inside the same spreadsheet.
* By object
.. code-block:: python
sheet = doc[0]
doc.copy(sheet, 'OtherSheet')
* By name
.. code-block:: python
doc.copy('Sheet1', 'Sheet2')
* From sheet
.. code-block:: python
sheet = app.active_sheet
sheet.copy(sheet.name + '_2')
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)
Copy to
^^^^^^^
* Copy from sheet with the same name
.. code-block:: python
doc = app.docs.new()
sheet = app.active_sheet
sheet.copy_to(doc)
* Used new name
.. code-block:: python
doc = app.docs.new()
sheet = app.active_sheet
sheet.copy_to(doc, 'NewName')
Sort
^^^^
* Sort sheets by names.
.. code-block:: python
doc = app.active
doc.sort()
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()

View File

@ -215,6 +215,16 @@ class DataPilotFieldOrientation():
DPFO = DataPilotFieldOrientation
class CellInsertMode():
from com.sun.star.sheet.CellInsertMode import DOWN, RIGHT, ROWS, COLUMNS
CIM = CellInsertMode
class CellDeleteMode():
from com.sun.star.sheet.CellDeleteMode import UP, LEFT, ROWS, COLUMNS
CDM = CellDeleteMode
OS = platform.system()
IS_WIN = OS == 'Windows'
IS_MAC = OS == 'Darwin'
@ -1195,9 +1205,9 @@ class LODocument(object):
# ~ return self.obj.getCurrentSelection()
return
def select(self, obj):
self._cc.select(obj)
return
# ~ def select(self, obj):
# ~ self._cc.select(obj)
# ~ return
def to_pdf(self, path: str='', options: dict={}):
"""
@ -1502,6 +1512,10 @@ class LOCalc(LODocument):
sheet = self.active
return sheet.render(data, clean=clean)
def select(self, rango):
self._cc.select(rango.obj)
return
class LOChart(object):
@ -2473,6 +2487,10 @@ class LOCalcRange(object):
def type(self):
return self.obj.Type
@property
def error(self):
return self.obj.getError()
@property
def value(self):
v = None
@ -2486,10 +2504,8 @@ class LOCalcRange(object):
@value.setter
def value(self, data):
if isinstance(data, str):
# ~ print(isinstance(data, str), data[0])
if data[0] in '=':
self.obj.setFormula(data)
# ~ print('Set Formula')
else:
self.obj.setString(data)
elif isinstance(data, Decimal):
@ -2668,7 +2684,7 @@ class LOCalcRange(object):
self.obj.Validation = current
def select(self):
self.doc.select(self.obj)
self.doc._cc.select(self.obj)
return
def search(self, options, find_all=True):
@ -2728,32 +2744,51 @@ class LOCalcRange(object):
cursor.collapseToSize(cols, rows)
return LOCalcRange(self.sheet[cursor.AbsoluteName].obj)
def copy(self, source):
def move(self, target):
sheet = self.sheet.obj
sheet.moveRange(target.address, self.range_address)
return
def insert(self, insert_mode=CIM.DOWN):
sheet = self.sheet.obj
sheet.insertCells(self.range_address, insert_mode)
return
def delete(self, delete_mode=CDM.UP):
sheet = self.sheet.obj
sheet.removeRange(self.range_address, delete_mode)
return
def copy_from(self, source):
self.sheet.obj.copyRange(self.address, source.range_address)
return
def copy_to(self, cell, formula=False):
rango = cell.to_size(self.rows, self.columns)
if formula:
rango.formula = self.data
else:
rango.data = self.data
def copy_to(self, target):
self.sheet.obj.copyRange(target.address, self.range_address)
return
def copy_from(self, rango, formula=False):
data = rango
if isinstance(rango, LOCalcRange):
if formula:
data = rango.formula
else:
data = rango.data
rows = len(data)
cols = len(data[0])
if formula:
self.to_size(rows, cols).formula = data
else:
self.to_size(rows, cols).data = data
return
# ~ def copy_to(self, cell, formula=False):
# ~ rango = cell.to_size(self.rows, self.columns)
# ~ if formula:
# ~ rango.formula = self.formula
# ~ else:
# ~ rango.data = self.data
# ~ return
# ~ def copy_from(self, rango, formula=False):
# ~ data = rango
# ~ if isinstance(rango, LOCalcRange):
# ~ if formula:
# ~ data = rango.formula
# ~ else:
# ~ data = rango.data
# ~ rows = len(data)
# ~ cols = len(data[0])
# ~ if formula:
# ~ self.to_size(rows, cols).formula = data
# ~ else:
# ~ self.to_size(rows, cols).data = data
# ~ return
def optimal_width(self):
self.obj.Columns.OptimalWidth = True