Struttura dei fogli elettronici

From Apache OpenOffice Wiki
Jump to: navigation, search

L'oggetto documento di un foglio elettronico si basa sul servizio com.sun.star.sheet.SpreadsheetDocument. Ognuno di tali documenti può contenere diversi fogli elettronici. Nel presente manuale, per documento basato su tabelle o foglio elettronico si intende l'intero documento, mentre per tabella si intende una singola tabella del documento.

Documentation note.png VBA e OpenOffice.org Basic utilizzano una terminologia diversa per i fogli elettronici e il relativo contenuto. In VBA l'oggetto documento è denominato cartella di lavoro, mentre le singole pagine che lo compongono sono denominate fogli di lavoro, mentre in OpenOffice.org Basic tali elementi sono denominati rispettivamente foglio elettronico e tabella.

Fogli elettronici

Potete accedere alle singole tabelle di un foglio elettronico tramite l'elenco Sheets.

Gli esempi seguenti mostrano come accedere a una tabella tramite il relativo numero o nome.

Esempio 1: accesso tramite il numero (la numerazione inizia da 0)

Dim Doc As Object
Dim Sheet As Object
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets (0)

Esempio 2: accesso tramite il nome

Dim Doc As Object
Dim Sheet As Object
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets.getByName("Sheet 1")

Nel primo esempio, si accede alla tabella mediante il rispettivo numero. Il conteggio inizia da 0. Nel secondo esempio, si accede alla tabella utilizzando il rispettivo nome e il metodo getByName.

L'oggetto Sheet ottenuto tramite il metodo getByName supporta il servizio com.sun.star.sheet.Spreadsheet. Oltre a fornire diverse interfacce per la modifica dei contenuti, il servizio fornisce le proprietà seguenti:

IsVisible (Boolean)
Il foglio elettronico è visibile.
PageStyle (String)
Nome del modello di pagina per il foglio elettronico.

Creazione, eliminazione e ridenominazione dei fogli

L'elenco Sheets di un documento spreadsheet viene utilizzato anche per creare, eliminare e rinominare singole tabelle. L'esempio seguente si avvale del metodo hasByName per verificare se esiste una tabella denominata MySheet. In caso affermativo, il metodo determina un riferimento dell'oggetto corrispondente utilizzando il metodo getByName, quindi salva il riferimento in una variabile in Sheet. Se invece la tabella corrispondente non esiste, viene creata dalla chiamata createInstance e inserita nel foglio elettronico tramite il metodo insertByName.

Dim Doc As Object
Dim Sheet As Object
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
 
If Doc.Sheets.hasByName("MySheet") Then
   Sheet = Doc.Sheets.getByName("MySheet")
Else
   Sheet = Doc.createInstance("com.sun.star.sheet.Spreadsheet")
   Doc.Sheets.insertByName("MySheet", Sheet)
End If

I metodi getByName e insertByName derivano dall'interfaccia com.sun.star.container.XnameContainer, come descritto in Introduzione all'API.

Content on this page is licensed under the Public Documentation License (PDL).
Personal tools