Macros/Guía de Python/Hojas de cálculo de Calc

    From The Document Foundation Wiki
    This page is a translated version of the page Macros/Python Guide/Calc/Calc sheets and the translation is 100% complete.


    ⇐ Volver al índice

    Other languages:


    Hojas de cálculo

    En esta Guía de Python usamos las siguientes convenciones:

    • hoja es una sola hoja de cálculo dentro de un documento de Calc
    • libro de cálculo es un documento de Calc


    ATENCIÓN

    Copie o importe la función msgbox que se describe en Funciones útiles

    Nombres de hojas

    • Obtenga los nombres de todas las hojas

    doc = XSCRIPTCONTEXT.getDocument()
        names = doc.Sheets.ElementNames
        msgbox(names)


    Cuente todas las hojas dentro de un libro de cálculo

    doc = XSCRIPTCONTEXT.getDocument()
        count = doc.Sheets.Count
        msgbox(count)


    Actúe sobre todas las hojas

    doc = XSCRIPTCONTEXT.getDocument()
        for sheet in doc.Sheets:
            msgbox(sheet.Name)


    Obtenga una determinada hoja

    • Obtenga la hoja activa del documento activo

    doc = XSCRIPTCONTEXT.getDocument()
        sheet = doc.getCurrentController().getActiveSheet()
        msgbox(sheet.Name)


    • Obtenga la hoja activa mediante su índice en el documento activo

    sheet = doc.Sheets[0]
        msgbox(sheet.Name)


    • Obtenga la hoja activa mediante su nombre en el documento activo

    sheet = doc.Sheets['data']
        msgbox(sheet.Name)


    Activación de la hoja

    Active el foco sobre una hoja

    doc = XSCRIPTCONTEXT.getDocument()
        sheet = doc.Sheets[0]
        doc.getCurrentController().setActiveSheet(sheet)


    Cambie el nombre

    • Cambie el nombre de la hoja visible para el usuario

    sheet = doc.Sheets[0]
        msgbox(sheet.Name)
        sheet.Name = 'OtherName'
        msgbox(sheet.Name)


    • Cambie el nombre de la hoja visible para el código

    sheet = doc.Sheets[0]
        msgbox(sheet.CodeName)
        sheet.CodeName = 'Data'
        msgbox(sheet.CodeName)


    Establezca la visibilidad de la hoja

    • Establezca el valor de la propiedad IsVisible como False para ocultar la hoja activa; y True para mostrarla.

    sheet = doc.Sheets[0]
        msgbox(sheet.IsVisible)
        sheet.IsVisible = False
        msgbox(sheet.IsVisible)
        sheet.IsVisible = True


    Gestión de contraseñas

    • Establezca una contraseña

    sheet = doc.Sheets[0]
        contra = 'letmein'
        sheet.protect(contra)


    • Elimine la contraseña establecida

    sheet = doc.Sheets[0]
        contra = 'letmein'
        sheet.unprotect(contra)


    Verifique si la hoja existe en el libro de cálculo

    doc = XSCRIPTCONTEXT.getDocument()
        exists = 'data' in doc.Sheets
        msgbox(exists)


    Inserte una hoja nueva en el libro de cálculo

    insertNewByName(NOMBRE, POSICIÓN)

    doc = XSCRIPTCONTEXT.getDocument()
        doc.Sheets.insertNewByName('new', 0)


    Inserte una hoja existente en un libro de cálculo

    insertByName(HOJA, POSICIÓN)

    doc = XSCRIPTCONTEXT.getDocument()
        sheet = doc.createInstance('com.sun.star.sheet.Spreadsheet')
        doc.Sheets.insertByName(sheet, 0)


    Mueva la posición de una hoja dentro del libro de cálculo

    moveByName(NOMBRE, NUEVA_POSICIÓN)

    doc = XSCRIPTCONTEXT.getDocument()
        doc.Sheets.moveByName('new', 3)


    Elimine una hoja del libro de cálculo

    removeByName(NOMBRE)

    doc = XSCRIPTCONTEXT.getDocument()
        doc.Sheets.removeByName('new')


    Remplace una hoja con una nueva hoja

    replaceByName(NOMBRE, HOJA)

    PRECAUCIÓN

    Use con prudencia. Esta función remplaza la hoja NOMBRE con una hoja totalmente en blanco.

    doc = XSCRIPTCONTEXT.getDocument()
        sheet = doc.createInstance('com.sun.star.sheet.Spreadsheet')
        doc.Sheets.replaceByName('data', sheet)


    Copie una hoja

    • Renombre una hoja

    copyByName(NOMBRE_ORIGINAL, NUEVO_NOMBRE, POSICIÓN)

    PRECAUCIÓN

    Si el nuevo nombre ya existe en el libro de cálculo, la hoja se copiará con el nombre NOMBRE_ORIGINAL_2 y no habrá ningún mensaje de error.

    • Copie la hoja con otro nombre dentro del mismo documento

    doc = XSCRIPTCONTEXT.getDocument()
        doc.Sheets.copyByName('data', 'NewData', 10)


    • Copie (o importe) una hoja desde otro documento

    importSheet(ORIGEN, NOMBRE_HOJA_ORIGEN, POSICIÓN)

    source = XSCRIPTCONTEXT.getDocument()
    
        desktop = app.create_instance('com.sun.star.frame.Desktop', True)
        path = 'private:factory/scalc'
        doc = desktop.loadComponentFromURL(path, '_default', 0, ())
    
        doc.Sheets.importSheet(source, 'Services', 0)


    Coloree la pestaña de una hoja

    ATENCIÓN

    Copie o importe la función get_color que se describe en Funciones útiles

    sheet = doc.Sheets['Sheet1']
    sheet.TabColor = get_color(255, 0, 0)


    ⇐ Volver al índice