6.4 KiB
title |
---|
Documento |
Devolver el documento activo.
active
doc = app.active
Propiedades
active
Devuelve la hoja activa.
doc = app.active
hoja = doc.active
app.debug(hoja)
headers
Mostrar u ocultar encabezados de filas y columnas.
doc = app.active
app.msgbox(doc.headers)
doc.headers = not doc.headers
app.msgbox(doc.headers)
doc.headers = not doc.headers
names
Devolver una tupla con los nombres de todas las hojas.
doc = app.active
nombres = doc.names
app.debug(nombres)
selection
Devolver la selección activa.
!!! warning inline end "Cuidado"
La selección actual pueden ser muchas cosas diferentes.
doc = app.active
seleccion = doc.selection
app.debug(seleccion)
tabs
Mostrar u ocultar las pestañas de las hojas.
doc = app.active
app.msgbox(doc.tabs)
doc.tabs = not doc.tabs
app.msgbox(doc.tabs)
doc.tabs = not doc.tabs
Métodos
activate
Activar hoja, argumento como objeto.
doc = app.active
hoja = doc[-1]
doc.activate(hoja)
Activar hoja por nombre.
doc = app.active
doc.activate('Hoja3')
copy
Copiar hoja dentro del mismo documento.
doc = app.active
hoja = doc[0]
doc.copy_sheet(hoja, 'Otra hoja')
Por nombre.
doc.copy_sheet('Hoja1', 'Nueva Hoja')
Si no se establece el nuevo nombre, se generá de forma automática: nombre + índice
.
doc.copy_sheet(hoja)
copy_from
Copiar hojas de otro documento. Copiar con el mismo nombre.
doc = app.active
documento_origen = app.docs['Contactos.ods']
nombre_origen = 'Nombres'
doc.copy_from(documento_origen, nombre_origen)
Copiar con un nuevo nombre.
doc.copy_from(documento_origen, nombre_origen, 'NuevoNombre')
Si solo se establece el documento origen, se copian todas las hojas.
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.
insert
Inserta una nueva hoja, se devuelve la hoja insertada.
doc = app.active
hoja = doc.insert('HojaInsertada')
Insertar varias hojas. Devolverá la última insertada.
nombres = ('Enero', 'Febrero', 'Marzo')
hoja = doc.insert(nombres)
app.debug(hoja)
Creando una nueva instancia y asignandola.
doc = app.active
doc['NuevaHoja'] = doc.new_sheet()
!!! warning "Cuidado"
Si la hoja existe, obtendrá un error, verifique siempre que no exista primero.
move
Mover hojas.
Pasar la hoja como objeto, de forma predetermianda se mueve a la última posición.
doc = app.active
hoja = doc[0]
doc.move(hoja)
!!! info "Información"
Al mover una hoja, cambian sus índices.
Pasar la hoja por nombre.
doc = app.active
doc.move('Hoja1')
Especificar la posición destino.
doc = app.active
hoja = doc[0]
doc.move(hoja, 2)
remove
!!! warning "Cuidado"
Siempre debe haber al menos una hoja en un documento.
Eliminar hoja por índice.
doc = app.active
sheet = doc[0]
doc.remove(sheet)
Eliminar por nombre.
doc.remove('Hoja2')
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:
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
select
Seleccionar una celda o rango.
doc = app.active
cell = doc[0]['A1']
doc.select(cell)
!!! tip "Consejo"
**No es necesario** seleccionar celdas o rangos para manipularlos.
sort
Ordenar hojas en orden alfabetico.
doc = app.active
doc.sort()
Ordenar de forma inversa.
doc = app.active
doc.sort(True)
Eventos
Obtener una tupla con los eventos soportados por el documento.
doc = app.active
nombres = doc.events.names
for nombre in nombres:
app.debug(nombre)
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
Asignar una macro a un evento.
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
Eliminar la asignación del evento.
doc = app.active
doc.events['OnFocus'] = {}
O
doc = app.active
doc.events.remove('OnFocus')