394 lines
6.4 KiB
Markdown
394 lines
6.4 KiB
Markdown
---
|
|
title: Documento
|
|
---
|
|
|
|
Devolver el documento activo.
|
|
|
|
### **active**
|
|
|
|
```py
|
|
doc = app.active
|
|
```
|
|
|
|
<br>
|
|
|
|
## Propiedades
|
|
|
|
---
|
|
|
|
### **active**
|
|
|
|
Devuelve la hoja activa.
|
|
|
|
```py
|
|
doc = app.active
|
|
hoja = doc.active
|
|
app.debug(hoja)
|
|
```
|
|
|
|
<br>
|
|
|
|
### **headers**
|
|
|
|
Mostrar u ocultar encabezados de filas y columnas.
|
|
|
|
```py
|
|
doc = app.active
|
|
app.msgbox(doc.headers)
|
|
doc.headers = not doc.headers
|
|
app.msgbox(doc.headers)
|
|
doc.headers = not doc.headers
|
|
```
|
|
|
|
<br>
|
|
|
|
### **names**
|
|
|
|
Devolver una tupla con los nombres de todas las hojas.
|
|
|
|
```py
|
|
doc = app.active
|
|
nombres = doc.names
|
|
app.debug(nombres)
|
|
```
|
|
|
|
<br>
|
|
|
|
### **selection**
|
|
|
|
Devolver la selección activa.
|
|
|
|
!!! warning inline end "Cuidado"
|
|
|
|
La selección actual pueden ser muchas cosas diferentes.
|
|
|
|
```py
|
|
doc = app.active
|
|
seleccion = doc.selection
|
|
app.debug(seleccion)
|
|
```
|
|
|
|
<br>
|
|
|
|
### **tabs**
|
|
|
|
Mostrar u ocultar las pestañas de las hojas.
|
|
|
|
```py
|
|
doc = app.active
|
|
app.msgbox(doc.tabs)
|
|
doc.tabs = not doc.tabs
|
|
app.msgbox(doc.tabs)
|
|
doc.tabs = not doc.tabs
|
|
```
|
|
|
|
<br>
|
|
|
|
## Métodos
|
|
|
|
---
|
|
|
|
### **activate**
|
|
|
|
Activar hoja, argumento como objeto.
|
|
|
|
```py
|
|
doc = app.active
|
|
hoja = doc[-1]
|
|
doc.activate(hoja)
|
|
```
|
|
|
|
Activar hoja por nombre.
|
|
|
|
```py
|
|
doc = app.active
|
|
doc.activate('Hoja3')
|
|
```
|
|
|
|
<br>
|
|
|
|
### **copy**
|
|
|
|
Copiar hoja dentro del mismo documento.
|
|
|
|
```py
|
|
doc = app.active
|
|
hoja = doc[0]
|
|
|
|
doc.copy_sheet(hoja, 'Otra hoja')
|
|
```
|
|
|
|
Por nombre.
|
|
|
|
```py
|
|
doc.copy_sheet('Hoja1', 'Nueva Hoja')
|
|
```
|
|
|
|
Si no se establece el nuevo nombre, se generá de forma automática: `nombre + índice`.
|
|
|
|
```py
|
|
doc.copy_sheet(hoja)
|
|
```
|
|
|
|
<br>
|
|
|
|
### **copy_from**
|
|
|
|
Copiar hojas de otro documento. Copiar con el mismo nombre.
|
|
|
|
```py
|
|
doc = app.active
|
|
documento_origen = app.docs['Contactos.ods']
|
|
nombre_origen = 'Nombres'
|
|
|
|
doc.copy_from(documento_origen, nombre_origen)
|
|
```
|
|
|
|
Copiar con un nuevo nombre.
|
|
|
|
```py
|
|
doc.copy_from(documento_origen, nombre_origen, 'NuevoNombre')
|
|
```
|
|
|
|
Si solo se establece el documento origen, se copian todas las hojas.
|
|
|
|
|
|
```py
|
|
doc.copy_from(documento_origen)
|
|
```
|
|
|
|
!!! info "Información"
|
|
|
|
Si algún nombre de hoja en el origen existe en el destino, se copiará con un nuevo índice concatenado el nombre origen.
|
|
|
|
<br>
|
|
|
|
### **insert**
|
|
|
|
Inserta una nueva hoja, se devuelve la hoja insertada.
|
|
|
|
```py
|
|
doc = app.active
|
|
hoja = doc.insert('HojaInsertada')
|
|
```
|
|
|
|
Insertar varias hojas. Devolverá la última insertada.
|
|
|
|
```py
|
|
nombres = ('Enero', 'Febrero', 'Marzo')
|
|
hoja = doc.insert(nombres)
|
|
app.debug(hoja)
|
|
```
|
|
|
|
Creando una nueva instancia y asignandola.
|
|
|
|
```py
|
|
doc = app.active
|
|
doc['NuevaHoja'] = doc.new_sheet()
|
|
```
|
|
|
|
!!! warning "Cuidado"
|
|
|
|
Si la hoja existe, obtendrá un error, verifique siempre que no exista primero.
|
|
|
|
<br>
|
|
|
|
### **move**
|
|
|
|
Mover hojas.
|
|
|
|
Pasar la hoja como objeto, de forma predetermianda se mueve a la última posición.
|
|
|
|
```py
|
|
doc = app.active
|
|
hoja = doc[0]
|
|
doc.move(hoja)
|
|
```
|
|
|
|
!!! info "Información"
|
|
|
|
Al mover una hoja, cambian sus índices.
|
|
|
|
Pasar la hoja por nombre.
|
|
|
|
```py
|
|
doc = app.active
|
|
doc.move('Hoja1')
|
|
```
|
|
|
|
Especificar la posición destino.
|
|
|
|
```py
|
|
doc = app.active
|
|
hoja = doc[0]
|
|
doc.move(hoja, 2)
|
|
```
|
|
|
|
<br>
|
|
|
|
### **remove**
|
|
|
|
!!! warning "Cuidado"
|
|
|
|
Siempre debe haber al menos una hoja en un documento.
|
|
|
|
Eliminar hoja por índice.
|
|
|
|
```py
|
|
doc = app.active
|
|
sheet = doc[0]
|
|
|
|
doc.remove(sheet)
|
|
```
|
|
|
|
Eliminar por nombre.
|
|
|
|
```py
|
|
doc.remove('Hoja2')
|
|
```
|
|
|
|
<br>
|
|
|
|
### **start_range_selection**
|
|
|
|
Permitir al usuario seleccionar un rango. Es necesario pasarle una clase con el nombre que prefiera (`Eventos` es recomendable) con dos métodos para procesar la captura como en el siguiente ejemplo:
|
|
|
|
```py
|
|
class Eventos():
|
|
|
|
def __init__(self, doc):
|
|
self.doc = doc
|
|
|
|
def range_selection_done(self, range_selection):
|
|
if range_selection:
|
|
app.debug(range_selection)
|
|
self.doc.remove_range_selection_listener()
|
|
return
|
|
|
|
def range_selection_aborted(self):
|
|
self.doc.remove_range_selection_listener()
|
|
return
|
|
|
|
|
|
def main():
|
|
doc = app.active
|
|
doc.start_range_selection(Eventos)
|
|
return
|
|
```
|
|
|
|
<br>
|
|
|
|
### **select**
|
|
|
|
Seleccionar una celda o rango.
|
|
|
|
```py
|
|
doc = app.active
|
|
cell = doc[0]['A1']
|
|
doc.select(cell)
|
|
```
|
|
|
|
!!! tip "Consejo"
|
|
|
|
**No es necesario** seleccionar celdas o rangos para manipularlos.
|
|
|
|
<br>
|
|
|
|
### **sort**
|
|
|
|
Ordenar hojas en orden alfabetico.
|
|
|
|
```py
|
|
doc = app.active
|
|
doc.sort()
|
|
```
|
|
|
|
Ordenar de forma inversa.
|
|
|
|
```py
|
|
doc = app.active
|
|
doc.sort(True)
|
|
```
|
|
|
|
<br>
|
|
|
|
## Eventos
|
|
|
|
---
|
|
|
|
Obtener una tupla con los eventos soportados por el documento.
|
|
|
|
```py
|
|
doc = app.active
|
|
nombres = doc.events.names
|
|
for nombre in nombres:
|
|
app.debug(nombre)
|
|
```
|
|
|
|
```sh
|
|
23/04/2023 13:54:10 - DEBUG - OnStartApp
|
|
23/04/2023 13:54:10 - DEBUG - OnCloseApp
|
|
23/04/2023 13:54:10 - DEBUG - OnCreate
|
|
23/04/2023 13:54:10 - DEBUG - OnNew
|
|
23/04/2023 13:54:10 - DEBUG - OnLoadFinished
|
|
23/04/2023 13:54:10 - DEBUG - OnLoad
|
|
23/04/2023 13:54:10 - DEBUG - OnPrepareUnload
|
|
23/04/2023 13:54:10 - DEBUG - OnUnload
|
|
23/04/2023 13:54:10 - DEBUG - OnSave
|
|
23/04/2023 13:54:10 - DEBUG - OnSaveDone
|
|
23/04/2023 13:54:10 - DEBUG - OnSaveFailed
|
|
23/04/2023 13:54:10 - DEBUG - OnSaveAs
|
|
23/04/2023 13:54:10 - DEBUG - OnSaveAsDone
|
|
23/04/2023 13:54:10 - DEBUG - OnSaveAsFailed
|
|
23/04/2023 13:54:10 - DEBUG - OnCopyTo
|
|
23/04/2023 13:54:10 - DEBUG - OnCopyToDone
|
|
23/04/2023 13:54:10 - DEBUG - OnCopyToFailed
|
|
23/04/2023 13:54:10 - DEBUG - OnFocus
|
|
23/04/2023 13:54:10 - DEBUG - OnUnfocus
|
|
23/04/2023 13:54:10 - DEBUG - OnPrint
|
|
23/04/2023 13:54:10 - DEBUG - OnViewCreated
|
|
23/04/2023 13:54:10 - DEBUG - OnPrepareViewClosing
|
|
23/04/2023 13:54:10 - DEBUG - OnViewClosed
|
|
23/04/2023 13:54:10 - DEBUG - OnModifyChanged
|
|
23/04/2023 13:54:10 - DEBUG - OnTitleChanged
|
|
23/04/2023 13:54:10 - DEBUG - OnVisAreaChanged
|
|
23/04/2023 13:54:10 - DEBUG - OnModeChanged
|
|
23/04/2023 13:54:10 - DEBUG - OnStorageChanged
|
|
```
|
|
|
|
<br>
|
|
|
|
### Asignar una macro a un evento.
|
|
|
|
```py
|
|
def doc_on_focus(event):
|
|
app.debug('Documento activado...')
|
|
return
|
|
|
|
|
|
def main():
|
|
doc = app.active
|
|
events = doc.events
|
|
if 'OnFocus' in events:
|
|
macro = {'library': 'test', 'name': 'doc_on_focus'}
|
|
events['OnFocus'] = macro
|
|
return
|
|
```
|
|
|
|
<br>
|
|
|
|
### Eliminar la asignación del evento.
|
|
|
|
```py
|
|
doc = app.active
|
|
doc.events['OnFocus'] = {}
|
|
```
|
|
|
|
O
|
|
|
|
```python
|
|
doc = app.active
|
|
doc.events.remove('OnFocus')
|
|
```
|
|
|
|
<br> |