4.8 KiB
title |
---|
Hojas |
Trabajar con hojas
Referencia por índice
doc = app.active
hoja = doc[0]
app.debug(hoja.name)
Referencia por nombre
doc = app.active
hoja = doc['datos']
app.debug(hoja.name)
in
Verificar por nombre si una hoja existe.
doc = app.active
existe = 'Hoja2' in doc
app.debug(existe)
len
Contar la cantidad de hojas en el documento.
doc = app.active
contar = len(doc)
app.debug(contar)
iter
Recorrer todas las hojas.
doc = app.active
for hoja in doc:
app.debug(hoja)
Propiedades
code_name
Nombre editable y accesible solo por código.
hoja = app.active.active
app.msgbox(hoja.code_name)
hoja.code_name = 'datos'
app.msgbox(hoja.code_name)
color
Color de la pestaña.
hoja = app.active.active
app.msgbox(hoja.color)
hoja.color = 'red'
app.msgbox(hoja.color)
# RGB
hoja.color = (125, 200, 10)
app.msgbox(hoja.color)
doc
Devuelve al documento Calc donde esta la hoja.
hoja = app.active.active
doc = hoja.doc
app.debug(doc.title)
is_protected
Devuelve verdadero (True) si la hoja esta protegida
hoja = app.active.active
esta_protegida = hoja.is_protected
app.debug(esta_protegida)
name
Nombre visible y editable por el usuario.
hoja = app.active.active
app.debug(hoja.name)
hoja.name = 'Nuevo Nombre'
app.debug(hoja.name)
password
Establecer una contraseña.
!!! tip "Consejo"
Si la hoja ya esta protegida, aún sin contraseña, este método no tendrá ningún efecto.
hoja = app.active.active
hoja.password = 'siscaloburropanzon'
app.debug(hoja.is_protected)
used_area
Referencia al área de usuario actual.
hoja = app.active.active
rango = hoja.used_area
app.debug(rango)
visible
Muestra u oculta la hoja
hoja = app.active.active
app.msgbox(hoja.visible)
hoja.visible = not hoja.visible
app.msgbox(hoja.visible)
hoja.visible = not hoja.visible
!!! tip "Cuidado"
Solo funcionará con dos o más hojas, por que debe haber al menos una visible. Siempre puedes trabajar con todo el documento oculto.
Métodos
activate
Pasar el foco a la hoja.
!!! tip inline end "Recuerde"
No es necesario activar una hoja para manipularse.
doc = app.active
hoja = doc[-1]
hoja.activate()
copy
!!! tip "Consejo"
Siempre valide que no exista el nuevo nombre.
doc = app.active
hoja = doc[0]
nuevo_nombre = f'{hoja.name}_2'
if not nuevo_nombre in doc:
hoja.copy(nuevo_nombre)
Si no se establece el nuevo nombre, se generá de forma automática: nombre + índice
.
hoja.copy()
copy_to
Copiar la hoja a otro documento. Se usa el mismo nombre.
doc = app.active
hoja = doc.active
documento_nuevo = app.docs.new()
hoja.copy_to(documento_nuevo)
Usar un nuevo nombre.
hoja.copy_to(documento_nuevo, 'Nuevo nombre')
move
Mover a la última posición.
doc = app.active
hoja = doc[0]
hoja.move()
Mover a una posición especifica.
doc = app.active
hoja = doc[0]
hoja.move(3)
remove
Remover hoja.
sheet = app.active.active
sheet.remove()
!!! warning "Cuidado"
Siempre debe existir al menos una hoja.
unprotect
Quitar contraseña.
hoja = app.active.active
hoja.password = 'siscaloburropanzon'
app.msgbox(hoja.is_protected)
hoja.unprotect('siscaloburropanzon')
app.msgbox(hoja.is_protected)
Eventos
names
Obtener una tupla con los eventos soportados por la hoja.
hoja = app.active.active
for nombre in hoja.events.names:
app.debug(nombre)
23/04/2023 16:59:26 - DEBUG - OnFocus
23/04/2023 16:59:26 - DEBUG - OnUnfocus
23/04/2023 16:59:26 - DEBUG - OnSelect
23/04/2023 16:59:26 - DEBUG - OnDoubleClick
23/04/2023 16:59:26 - DEBUG - OnRightClick
23/04/2023 16:59:26 - DEBUG - OnChange
23/04/2023 16:59:26 - DEBUG - OnCalculate
Asignar una macro a un evento.
def on_select(source):
app.debug(source.AbsoluteName)
return
def main():
doc = app.active
hoja = doc.active
if 'OnSelect' in hoja.events:
macro = {'library': 'test', 'name': 'on_select'}
hoja.events['OnSelect'] = macro
return
Eliminar la asignación del evento.
hoja.events['OnSelect'] = {}
O
hoja.events.remove('OnFocus')