Macros/Guida a Python/Calc/Fogli di Calc

From The Document Foundation Wiki
Jump to navigation Jump to search
This page is a translated version of the page Macros/Python Guide/Calc/Calc sheets and the translation is 100% complete.
Other languages:
English • ‎español • ‎italiano • ‎日本語



Ritorna all'indice

Fogli

In questa Guida a Python utilizziamo la seguente convenzione:

  • foglio è un singolo foglio di calcolo all'interno di un documento
  • foglio elettronico è un documento di Calc


ATTENZIONE:

Copiate o importate la funzione msgbox dalle Funzioni utili

Nomi

  • Ricavare i nomi di tutti i fogli
    doc = XSCRIPTCONTEXT.getDocument()
    names = doc.Sheets.ElementNames
    msgbox(names)

Contare tutti i fogli in un foglio elettronico

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

Iterare attraverso tutti i fogli

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

Ottenere i fogli

  • Ottenere il foglio attivo del documento in uso.
    doc = XSCRIPTCONTEXT.getDocument()
    sheet = doc.getCurrentController().getActiveSheet()
    msgbox(sheet.Name)
  • Ottenere il foglio attivo del documento in uso, in base al suo indice
    sheet = doc.Sheets[0]
    msgbox(sheet.Name)
  • Ottenere il foglio attivo del documento in uso, in base al suo nome
    sheet = doc.Sheets['dati']
    msgbox(sheet.Name)

Attivare un foglio

Impostare il focus su di un foglio

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

Modificare il nome

  • Modificare il nome visibile all'utente
    sheet = doc.Sheets[0]
    msgbox(sheet.Name)
    sheet.Name = 'NuovoNome'
    msgbox(sheet.Name)
  • Modificare il nome visibile solamente dal codice

ATTENZIONE: Questa modifica è vale solamente per la sessione in essere. È preferibile non modificare questa proprietà. È meglio usare i nomi predefiniti.

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

Impostare la visibilità di un foglio

  • Impostare IsVisible su False per nascondere un foglio e su True per visualizzarlo.
    sheet = doc.Sheets[0]
    msgbox(sheet.IsVisible)
    sheet.IsVisible = False
    msgbox(sheet.IsVisible)
    sheet.IsVisible = True

Gestione delle password

  • Impostare una password
    sheet = doc.Sheets[0]
    contra = 'fammientrare'
    sheet.protect(contra)
  • Eliminare la password
    sheet = doc.Sheets[0]
    contra = 'fammientrare'
    sheet.unprotect(contra)

Controllare l'esistenza di un foglio all'interno del foglio elettronico

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

Inserire un foglio vuoto

insertNewByName(NAME, POSITION)

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


Inserire un foglio esistente in un foglio elettronico

insertByName(SHEET, POSITION)

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

Spostare un foglio all'interno di un foglio elettronico

moveByName(NAME, NEW_POSITION)

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

Eliminare un foglio dal foglio elettronico

removeByName(NAME)

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

Sostituzione di un foglio con uno vuoto

replaceByName(NAME, SHEET)

ATTENZIONE: Usatela con cautela. Questa funzione sostituisce un foglio NAME con un foglio vuoto.

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

Copiare un foglio

  • Rinominare un foglio

copyByName(SOURCE_NAME, NEW_NAME, POSITION)

ATTENZIONE: Se il nuovo nome esiste già, il foglio verrà copiato con il nome SOURCE_NAME_2 e non genererà alcun messaggio di errore.

  • Copiare un foglio all'interno dello stesso documento
    doc = XSCRIPTCONTEXT.getDocument()
    doc.Sheets.copyByName('dati', 'DatiNuovo', 10)
  • Copiare (o importare) un foglio da un altro documento

importSheet(SOURCE, SOURCE_NAME, POSITION)

    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, 'Servizi', 0)

Colorare la linguetta di un foglio

ATTENZIONE

Copiate o importate la funzione get_color dalle Funzioni utili

1sheet = doc.Sheets['Foglio 1']
2sheet.TabColor = get_color(255, 0, 0)