Modifica dei fogli elettronici

From Apache OpenOffice Wiki
Jump to: navigation, search


Nella sezione precedente è stata descritta la struttura principale dei fogli elettronici, mentre la presente sezione illustra i servizi che permettono di accedere rapidamente alle singole celle o a intervalli di celle.

Intervalli di celle

Oltre a un oggetto per singole celle (servizio com.sun.star.table.Cell), Apache OpenOffice fornisce anche oggetti che rappresentano intervalli di celle. Tali oggetti CellRange vengono creati tramite la chiamata getCellRangeByName dell'oggetto foglio elettronico:

Dim Doc As Object
Dim Sheet As Object
Dim CellRange As Object
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets.getByName("Sheet 1")
CellRange = Sheet.getCellRangeByName("A1:C15")

Nei fogli elettronici, per specificare un intervallo di celle vengono utilizzati i due punti (:). Ad esempio, A1:C15 rappresenta tutte le celle nelle righe da 1 a 15 delle colonne A, B e C.

La posizione delle singole celle in un intervallo di celle può essere determinata con il metodo getCellByPosition, in cui le coordinate della cella superiore sinistra dell'intervallo sono (0, 0). L'esempio seguente si avvale precisamente di questo metodo per creare un oggetto della cella C3.

Dim Doc As Object
Dim Sheet As Object
Dim CellRange As Object
Dim Cell As Object
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets.getByName("Sheet 1")
CellRange = Sheet.getCellRangeByName("B2:D4")
Cell = CellRange.GetCellByPosition(1, 1)

Formattazione degli intervalli di celle

È possibile applicare la formattazione in modo analogo a quanto avviene per le singole celle anche agli intervalli di celle, tramite il servizio com.sun.star.table.CellProperties. Per ulteriori informazioni ed esempi di questo servizio, consultare la sezione Formattazione dei fogli elettronici.

Calcolo con gli intervalli di celle

Il metodo computeFunction permette di eseguire operazioni matematiche sugli intervalli di celle. computeFunction prevede come parametro una costante che descrive la funzione matematica da utilizzare. Le costanti associate sono definite nell'enumerazione com.sun.star.sheet.GeneralFunction. Sono disponibili i seguenti valori:

SUM
Somma di tutti i valori numerici
COUNT
Numero totale di tutti i valori (compresi i valori non numerici)
COUNTNUMS
Numero totale di tutti i valori numerici
AVERAGE
Media di tutti i valori numerici
MAX
Massimo valore numerico
MIN
Minimo valore numerico
PRODUCT
Prodotto di tutti i valori numerici
STDEV
Deviazione standard
VAR
Varianza
STDEVP
Deviazione standard basata sulla popolazione totale
VARP
Varianza basata sulla popolazione totale

L'esempio seguente calcola il valore medio dell'intervallo di celle A1:C3 e stampa il risultato in una casella di messaggi:

Dim Doc As Object
Dim Sheet As Object
Dim CellRange As Object
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets.getByName("Sheet 1")
CellRange = Sheet.getCellRangeByName("A1:C3")
 
MsgBox CellRange.computeFunction(com.sun.star.sheet.GeneralFunction.AVERAGE)

Eliminazione del contenuto delle celle

Il metodo clearContents semplifica il processo di eliminazione del contenuto di celle e intervalli di celle in quanto elimina un tipo specifico di contenuto da un intervallo di celle.

L'esempio seguente rimuove tutte le stringhe e le informazioni di formattazione diretta dall'intervallo B2:C3.

Dim Doc As Object
Dim Sheet As Object
Dim CellRange As Object
Dim Flags As Long
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
CellRange = Sheet.getCellRangeByName("B2:C3")
 
Flags = com.sun.star.sheet.CellFlags.STRING + _
      com.sun.star.sheet.CellFlags.HARDATTR
 
CellRange.clearContents(Flags)

I flag specificati in clearContents provengono dall'elenco di costanti com.sun.star.sheet.CellFlags, che dispone degli elementi seguenti:

VALUE
Valori numerici non formattati come data o ora
DATETIME
Valori numerici formattati come data o ora
STRING
Stringhe
ANNOTATION
Commenti collegati alle celle
FORMULA
Formule
HARDATTR
Formattazione diretta delle celle
STYLES
Formattazione indiretta
OBJECTS
Oggetti disegno collegati alle celle
EDITATTR
Formattazione dei caratteri applicabile solo a parte delle celle

È inoltre possibile raggruppare costanti per eliminare informazioni diverse utilizzando una chiamata da clearContents.

Ricerca e sostituzione del contenuto delle celle

I fogli elettronici, come i documenti di testo, forniscono una funzione per la ricerca e la sostituzione.

Gli oggetti descrittori per la ricerca e la sostituzione nei fogli elettronici non vengono creati direttamente tramite l'oggetto documento, bensì tramite l'elenco Sheets. Il seguente è un esempio di un processo di ricerca e sostituzione:


Dim Doc As Object
Dim Sheet As Object
Dim ReplaceDescriptor As Object
Dim I As Integer
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
 
ReplaceDescriptor = Sheet.createReplaceDescriptor()
ReplaceDescriptor.SearchString = "is"
ReplaceDescriptor.ReplaceString = "was"
For I = 0 to Doc.Sheets.Count - 1
   Sheet = Doc.Sheets(I)
   Sheet.ReplaceAll(ReplaceDescriptor) 
Next I

Questo esempio utilizza la prima pagina del documento per creare un ReplaceDescriptor, che viene quindi applicato a tutte le pagine in un ciclo.

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