doc = app.active
app.debug(doc.type)
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
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
Devolver la selección activa.
doc = app.active
seleccion = doc.selection
app.debug(seleccion)
Cuidado, la selección actual pueden ser muchas cosas diferentes.
Devolver una tupla con los nombres de todas las hojas.
doc = app.active
nombres = doc.names
app.debug(nombres)
Devuelve la hoja activa.
doc = app.active
hoja = doc.active
app.debug(hoja)
Activar hoja, argumento como objeto.
doc = app.active
hoja = doc[-1]
doc.activate(hoja)
Activar hoja por nombre.
doc = app.active
doc.activate('Hoja3')
Seleccionar una celda o rango.
doc = app.active
cell = doc[0]['A1']
doc.select(cell)
NO es necesario seleccionar celdas o rangos para manipularlos.
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
Inserta una nueva hoja.
doc = app.active
hoja = doc.insert('OtraHoja')
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()
Si la hoja existe, obtendrá un error, verifique siempre que no exista primero.
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)
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)
Eliminar hoja.
doc = app.active
sheet = doc[0]
doc.remove(sheet)
Eliminar por nombre.
doc.remove('Hoja2')
Copiar hoja dentro del mismo documento.
doc = app.active
hoja = doc[0]
doc.copy_sheet(hoja, 'Otra hoja')
Por nombre.
doc.copy_sheet('Hoja1', 'Hoja2')
Si no se establece el nuevo nombre, se generá de forma automática: nombre + índice
.
doc.copy_sheet(hoja)
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)
Ordenar hojas en orden alfabetico.
doc = app.active
doc.sort()
Ordenar de forma inversa.
doc = app.active
doc.sort(True)
Obtener una tupla con los eventos soportados por el documento.
doc = app.active
nombres = doc.events.names
app.debug(nombres)
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
doc = app.active
doc.events['OnFocus'] = {}
O
doc = app.active
doc.events.remove('OnFocus')