Prima di tutto occorre senza dubbio ottenere il riferimento ad un oggetto tabella, ad esempio la tabella attiva:
oSheet = ThisComponent.CurrentController.ActiveSheet
(qui altri modi per ottenere una tabella)Le celle sono raggiungibili attraverso le loro coordinate, ovvero gli indici di colonna e riga.
Occorre ricordare che nell'API di OpenOffice.org gli indici cominciano sempre da 0.
La prima cella in alto a sinistra (cella “A1”) avrà pertanto indice di colonna=0 e indice di riga=0 mentre l'ultima cella in basso a destra (cella “AMJ65536” ) avrà indice di colonna=1023 e indice di riga=65535
Per ottenere un riferimento ad una cella occorre utilizzare il seguente metodo API:
oCell = oSheet.getCellByPosition(col, row)
dove col e row sono rispettivamente gli indici di colonna e di riga della cella che si vuole ottenere.Esempio, per ottenere un riferimento alla cella G4:
oCell = oSheet.getCellByPosition(6, 3)Una volta ottenuto il riferimento ad un oggetto “cella” possiamo imparare come leggere e scrivere il suo contenuto.
L'accesso ai dati contenuti in una cella è garantito attraverso tre modalità diverse, anzi quattro:
- String
- Value
- Formula
- FormulaLocal
Leggere:
vData = oCell.String Print vDataScrivere:
oCell.String = "Ciao Mondo"Se invece vogliamo accedere al contenuto della cella sotto forma di valore numerico useremo la proprietà Value:
Leggere:
vData = oCell.Value Print vDataScrivere:
oCell.Value = "Ciao Mondo"Allo stesso modo la proprietà Formula ci consente di accedere al contenuto della cella sotto forma di funzione Calc:
N.B. con la proprietà formula i nomi delle funzioni di Calc sono riportati in inglese.
Esempio:
supponiamo che nella cella A1 sia contenuta la seguente funzione =SOMMA(B1:B9)
Eseguendo il codice seguente avremo:
oCell = oSheet.getCellByPosition(0, 0) 'cella A1 vData = oCell.Formula Print vData 'stampa: =SUM(B1:B9)Per ottenere le funzioni con i loro nomi tradotti nella lingua locale di OpenOffice.org occorre usare la variante FormulaLocal
oCell = oSheet.getCellByPosition(0, 0) 'cella A1 vData = oCell.FormulaLocal Print vData 'stampa: =SOMMA(B1:B9)Nel prossimo post vedremo come lavorare con gli intervalli anziché con le singole celle.
Nessun commento:
Posta un commento