Difference between revisions of "IT/Documentation/BASIC Guide/Formatting Spreadsheet Documents"

From Apache OpenOffice Wiki
Jump to: navigation, search
Line 12: Line 12:
 
== Proprietà delle celle ==
 
== Proprietà delle celle ==
  
Esistono numerose opzioni per formattare le celle: è ad esempio possibile specificare tipo e dimensioni carattere per il testo. Ogni cella supporta i servizi <idl>com.sun.star.style.CharacterProperties</idl> e <idl>com.sun.star.style.ParagraphProperties</idl>, le cui proprietà principali sono descritte in [[Documentation/BASIC Guide/Text Documents|Documenti di testo]]. La formattazione speciale delle celle è gestita dal servizio <idl>com.sun.star.table.CellProperties</idl>, le cui proprietà principali sono descritte nelle sezioni seguenti.
+
Esistono numerose opzioni per formattare le celle: è ad esempio possibile specificare tipo e dimensioni carattere per il testo. Ogni cella supporta i servizi <idl>com.sun.star.style.CharacterProperties</idl> e <idl>com.sun.star.style.ParagraphProperties</idl>, le cui proprietà principali sono descritte in [[IT/Documentation/BASIC Guide/Text Documents|Documenti di testo]]. La formattazione speciale delle celle è gestita dal servizio <idl>com.sun.star.table.CellProperties</idl>, le cui proprietà principali sono descritte nelle sezioni seguenti.
  
 
Tutte le proprietà si possono applicare sia a singole celle che a intervalli di celle.
 
Tutte le proprietà si possono applicare sia a singole celle che a intervalli di celle.

Revision as of 03:30, 7 July 2009


Un foglio elettronico dispone di proprietà e metodi per formattare celle e pagine.

Proprietà delle celle

Esistono numerose opzioni per formattare le celle: è ad esempio possibile specificare tipo e dimensioni carattere per il testo. Ogni cella supporta i servizi com.sun.star.style.CharacterProperties e com.sun.star.style.ParagraphProperties, le cui proprietà principali sono descritte in Documenti di testo. La formattazione speciale delle celle è gestita dal servizio com.sun.star.table.CellProperties, le cui proprietà principali sono descritte nelle sezioni seguenti.

Tutte le proprietà si possono applicare sia a singole celle che a intervalli di celle.

Template:Documentation/Note

Colore di sfondo e ombre

Il servizio com.sun.star.table.CellProperties fornisce le seguenti proprietà per definire i colori di sfondo e le ombre:

CellBackColor (Long)
Colore di sfondo della cella di tabella
IsCellBackgroundTransparent (Boolean)
Imposta il colore di sfondo su trasparente
ShadowFormat (struct)
Specifica l'ombra per le celle (struttura conforme a com.sun.star.table.ShadowFormat)

La struttura com.sun.star.table.ShadowFormat e le specifiche dettagliate per le ombre delle celle hanno la struttura seguente:

Location (enum)
Posizione dell'ombra (valore della struttura com.sun.star.table.ShadowLocation)
ShadowWidth (Short)
Dimensioni dell'ombra in centesimi di millimetro
IsTransparent (Boolean)
Imposta l'ombra su trasparente
Color (Long)
Colore dell'ombra

L'esempio seguente scrive il numero 1000 nella cella B2, cambia in rosso il colore dello sfondo avvalendosi della proprietà CellBackColor e quindi crea per la cella un'ombra di colore grigio chiaro, spostata di 1 mm verso sinistra e verso il basso.

Dim Doc As Object
Dim Sheet As Object
Dim Cell As Object
Dim ShadowFormat As New com.sun.star.table.ShadowFormat
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
Cell = Sheet.getCellByPosition(1,1)
 
Cell.Value = 1000
 
Cell.CellBackColor = RGB(255, 0, 0)
 
ShadowFormat.Location = com.sun.star.table.ShadowLocation.BOTTOM_RIGHT
ShadowFormat.ShadowWidth = 100
ShadowFormat.Color = RGB(160, 160, 160)
 
Cell.ShadowFormat = ShadowFormat

Giustificazione

Apache OpenOffice offre varie funzioni che permettono di modificare la giustificazione del testo nella cella di una tabella.

Le proprietà seguenti definiscono la giustificazione orizzontale e verticale di un testo:

HoriJustify (enum)
Giustificazione orizzontale del testo (valore da com.sun.star.table.CellHoriJustify)
VertJustify (enum)
Giustificazione verticale del testo (valore da com.sun.star.table.CellVertJustify)
Orientation (enum)
Orientamento del testo (valore conforme a com.sun.star.table.CellOrientation)
IsTextWrapped (Boolean)
Consente interruzioni di riga automatiche all'interno della cella
RotateAngle (Long)
Angolo di rotazione del testo in centesimi di grado

L'esempio seguente mostra come "impilare" i contenuti di una cella in modo che i singoli caratteri vengano visualizzati uno sotto l'altro nell'angolo superiore sinistro della cella. I caratteri non vengono ruotati.

Dim Doc As Object
Dim Sheet As Object
Dim Cell As Object
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
Cell = Sheet.getCellByPosition(1,1)
 
Cell.Value = 1000
 
Cell.HoriJustify = com.sun.star.table.CellHoriJustify.LEFT
Cell.VertJustify = com.sun.star.table.CellVertJustify.TOP
Cell.Orientation = com.sun.star.table.CellOrientation.STACKED

Formati di numeri, data e testo

Apache OpenOffice fornisce una serie completa di formati di data e ora predefiniti. Ciascuno di tali formati ha un numero interno utilizzato per assegnare il formato alle celle con la proprietà NumberFormat. Apache OpenOffice dispone dei metodi queryKey e addNew che consentono di accedere ai formati numerici esistenti nonché crearne di personalizzati. I metodi sono accessibili tramite la seguente chiamata:

NumberFormats = Doc.NumberFormats

Il formato viene specificato utilizzando una stringa di formattazione strutturata in modo analogo alla funzione di formattazione di Apache OpenOffice Basic. Va tuttavia segnalata un'importante differenza: mentre quest'ultima richiede l'uso delle abbreviazioni inglesi e del punto decimale o dei caratteri come separatori delle migliaia, per la struttura di un comando di formattazione per l'oggetto NumberFormats dovete utilizzare le abbreviazioni specifiche del paese.

L'esempio seguente formatta la cella B2 in modo che i numeri vengano visualizzati con tre posizioni decimali e utilizzino le virgole come separatore delle migliaia.

Dim Doc As Object
Dim Sheet As Object
Dim Cell As Object
Dim NumberFormats As Object
Dim NumberFormatString As String
Dim NumberFormatId As Long
Dim LocalSettings As New com.sun.star.lang.Locale
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
Cell = Sheet.getCellByPosition(1,1)
 
Cell.Value = 23400.3523565
 
LocalSettings.Language = "en"
LocalSettings.Country = "us"
 
NumberFormats = Doc.NumberFormats
NumberFormatString = "#,##0.000"
 
NumberFormatId = NumberFormats.queryKey(NumberFormatString, LocalSettings, True)
If NumberFormatId = -1 Then
   NumberFormatId = NumberFormats.addNew(NumberFormatString, LocalSettings)
End If
 
MsgBox NumberFormatId
Cell.NumberFormat = NumberFormatId

La finestra di dialogo Formatta celle di Apache OpenOffice Calc offre una panoramica delle diverse opzioni di formattazione per le celle.

Proprietà delle pagine

Le proprietà delle pagine sono le opzioni di formattazione che posizionano il contenuto del documento su una pagina, nonché gli elementi visivi che vengono ripetuti pagina dopo pagina. Includono

  • Formati dei fogli
  • Margini
  • Intestazioni e piè di pagina

La procedura per definire i formati pagina differisce da quella di altre modalità di formattazione. Infatti, mentre gli elementi di celle, paragrafi e caratteri possono essere formattati direttamente, i formati pagina possono essere anche definiti e applicati in modo indiretto utilizzando i modelli di pagina. Intestazioni e piè di pagina, ad esempio, vengono aggiunti al modello di pagina.

Le sezioni seguenti descrivono le principali opzioni di formattazione per le pagine dei fogli elettronici. Molti degli stili descritti sono disponibili anche per i documenti di testo. Le proprietà di pagina valide per entrambi i tipi di documenti sono definite nel servizio com.sun.star.style.PageProperties. Le proprietà di pagina che si applicano invece solo ai fogli elettronici sono definite nel servizio com.sun.star.sheet.TablePageStyle.

Template:Documentation/Note

Sfondo pagina

Il servizio com.sun.star.style.PageProperties definisce le seguenti proprietà dello sfondo delle pagine:

BackColor (long)
Colore di sfondo
BackGraphicURL (String)
URL dell'immagine di sfondo da usare
BackGraphicFilter (String)
Nome del filtro che interpreta le immagini di sfondo
BackGraphicLocation (Enum)
Posizione delle immagini di sfondo (valore conforme all'enumerazione)
BackTransparent (Boolean)
Rende lo sfondo trasparente

Formato della pagina

Il formato della pagina viene definito utilizzando le seguenti proprietà del servizio com.sun.star.style.PageProperties:

IsLandscape (Boolean)
Formato orizzontale
Width (long)
Larghezza della pagina in centesimi di millimetro
Height (long)
Altezza della pagina in centesimi di millimetro
PrinterPaperTray (String)
Nome del cassetto della stampante da usare

L'esempio seguente imposta le dimensioni della pagina del modello di pagina "Default" sul formato orizzontale DIN A5 (altezza 14,8 cm, larghezza 21 cm):

Dim Doc As Object
Dim Sheet As Object
Dim StyleFamilies As Object 
Dim PageStyles As Object
Dim DefPage As Object
 
Doc = StarDesktop.CurrentComponent
StyleFamilies = Doc.StyleFamilies
PageStyles = StyleFamilies.getByName("PageStyles")
DefPage = PageStyles.getByName("Default")
 
DefPage.IsLandscape = True
DefPage.Width = 21000
DefPage.Height = 14800

Margine, bordo e ombra della pagina

Il servizio com.sun.star.style.PageProperties fornisce le seguenti proprietà per regolare i margini della pagina, i bordi e le ombre:

LeftMargin (long)
Larghezza del margine sinistro della pagina in centesimi di millimetro
RightMargin (long)
Larghezza del margine destro della pagina in centesimi di millimetro
TopMargin (long)
Larghezza del margine superiore della pagina in centesimi di millimetro
BottomMargin (long)
Larghezza del margine inferiore della pagina in centesimi di millimetro
LeftBorder (struct)
Specifiche per il bordo della linea sinistra della pagina (struttura com.sun.star.table.BorderLine)
RightBorder (struct)
Specifiche per il bordo della linea destra della pagina (struttura com.sun.star.table.BorderLine)
TopBorder (struct)
Specifiche per il bordo della linea superiore della pagina (struttura com.sun.star.table.BorderLine)
BottomBorder (struct)
Specifiche per il bordo della linea inferiore della pagina (strutturacom.sun.star.table.BorderLine)
LeftBorderDistance (long)
Distanza tra il bordo sinistro e il contenuto della pagina in centesimi di millimetro
RightBorderDistance (long)
Distanza tra il bordo destro e i contenuti della pagina in centesimi di millimetro
TopBorderDistance (long)
Distanza tra il bordo superiore e il contenuto della pagina in centesimi di millimetro
BottomBorderDistance (long)
Distanza tra il bordo inferiore e il contenuto della pagina in centesimi di millimetro
ShadowFormat (struct)
Specifiche per l'ombra dell'area del contenuto di una pagina (struttura com.sun.star.table.ShadowFormat)

L'esempio seguente imposta i bordi sinistro e destro del modello di pagina "Default" su 1 centimetro.

Dim Doc As Object
Dim Sheet As Object
Dim StyleFamilies As Object 
Dim PageStyles As Object
Dim DefPage As Object
 
Doc = StarDesktop.CurrentComponent
StyleFamilies = Doc.StyleFamilies
PageStyles = StyleFamilies.getByName("PageStyles")
DefPage = PageStyles.getByName("Default")
 
DefPage.LeftMargin = 1000
DefPage.RightMargin = 1000

Intestazioni e piè di pagina

Le intestazioni e i piè di pagina di un documento fanno parte delle proprietà della pagina e vengono definiti mediante il servizio com.sun.star.style.PageProperties. Le proprietà per la formattazione delle intestazioni sono le seguenti:

HeaderIsOn (Boolean)
L'intestazione è attivata
HeaderLeftMargin (long)
Distanza tra intestazione e margine sinistro della pagina, espressa in centesimi di millimetro
HeaderRightMargin (long)
Distanza tra intestazione e margine destro della pagina, espressa in centesimi di millimetro
HeaderBodyDistance (long)
Distanza tra intestazione e corpo principale del documento, espressa in centesimi di millimetro
HeaderHeight (long)
Altezza dell'intestazione in centesimi di millimetro
HeaderIsDynamicHeight (Boolean)
L'altezza dell'intestazione viene automaticamente adattata al contenuto
HeaderLeftBorder (struct)
Dettagli del bordo sinistro della cornice attorno all'intestazione (struttura com.sun.star.table.BorderLine)
HeaderRightBorder (struct)
Dettagli del bordo destro della cornice attorno all'intestazione (struttura com.sun.star.table.BorderLine)
HeaderTopBorder (struct)
Dettagli del bordo superiore della cornice attorno all'intestazione (struttura com.sun.star.table.BorderLine)
HeaderBottomBorder (struct)
Dettagli del bordo inferiore della cornice attorno all'intestazione (struttura com.sun.star.table.BorderLine)
HeaderLeftBorderDistance (long)
Distanza tra il bordo sinistro e il contenuto dell'intestazione, espressa in centesimi di millimetro
HeaderRightBorderDistance (long)
Distanza tra il bordo destro e il contenuto dell'intestazione, espressa in centesimi di millimetro
HeaderTopBorderDistance (long)
Distanza tra il bordo superiore e il contenuto dell'intestazione, espressa in centesimi di millimetro
HeaderBottomBorderDistance (long)
Distanza tra il bordo inferiore e il contenuto dell'intestazione, espressa in centesimi di millimetro
HeaderIsShared (Boolean)
Le intestazioni delle pagine pari e delle pagine dispari hanno lo stesso contenuto (vedere HeaderText, HeaderTextLeft e HeaderTextRight)
HeaderBackColor (long)
Colore di sfondo dell'intestazione
HeaderBackGraphicURL (String)
URL dell'immagine di sfondo da usare
HeaderBackGraphicFilter (String)
Nome del filtro che interpreta le immagini di sfondo per l'intestazione
HeaderBackGraphicLocation (Enum)
Posizione delle immagini di sfondo per l'intestazione (valore conforme all'enumerazione com.sun.star.style.GraphicLocation)
HeaderBackTransparent (Boolean)
Mostra lo sfondo dell'intestazione come trasparente
HeaderShadowFormat (struct)
Dettagli dell'ombra dell'intestazione (struttura com.sun.star.table.ShadowFormat)

Le proprietà per la formattazione dei piè di pagina sono le seguenti:

FooterIsOn (Boolean)
Il piè di pagina è attivato
FooterLeftMargin (long)
Distanza tra piè di pagina e margine sinistro della pagina, espressa in centesimi di millimetro
FooterRightMargin (long)
Distanza tra piè di pagina e margine destro della pagina, espressa in centesimi di millimetro
FooterBodyDistance (long)
Distanza tra piè di pagina e corpo principale del documento, espressa in centesimi di millimetro
FooterHeight (long)
Altezza del piè di pagina in centesimi di millimetro
FooterIsDynamicHeight (Boolean)
L'altezza del piè di pagina viene automaticamente adattata al contenuto
FooterLeftBorder (struct)
Dettagli del bordo sinistro della cornice attorno al piè di pagina (struttura com.sun.star.table.BorderLine)
FooterRightBorder (struct)
Dettagli del bordo destro della cornice attorno al piè di pagina (struttura com.sun.star.table.BorderLine)
FooterTopBorder (struct)
Dettagli del bordo superiore della cornice attorno al piè di pagina (struttura com.sun.star.table.BorderLine)
FooterBottomBorder (struct)
Dettagli del bordo inferiore della cornice attorno al piè di pagina (struttura com.sun.star.table.BorderLine)
FooterLeftBorderDistance (long)
Distanza tra il bordo sinistro e il contenuto del piè di pagina, espressa in centesimi di millimetro
FooterRightBorderDistance (long)
Distanza tra il bordo destro e il contenuto del piè di pagina, espressa in centesimi di millimetro
FooterTopBorderDistance (long)
Distanza tra il bordo superiore e il contenuto del piè di pagina, espressa in centesimi di millimetro
FooterBottomBorderDistance (long)
Distanza tra il bordo inferiore e il contenuto del piè di pagina, espressa in centesimi di millimetro
FooterIsShared (Boolean)
I piè di pagina delle pagine pari e delle pagine dispari hanno lo stesso contenuto (vedere FooterText, FooterTextLeft e FooterTextRight)
FooterBackColor (long)
Colore di sfondo del piè di pagina
FooterBackGraphicURL (String)
URL dell'immagine di sfondo da usare
FooterBackGraphicFilter (String)
Nome del filtro che interpreta le immagini di sfondo per il piè di pagina
FooterBackGraphicLocation (Enum)
Posizione delle immagini di sfondo per il piè di pagina (valore conforme all'enumerazione com.sun.star.style.GraphicLocation)
FooterBackTransparent (Boolean)
Mostra lo sfondo del piè di pagina come trasparente
FooterShadowFormat (struct)
Dettagli dell'ombra del piè di pagina (struttura com.sun.star.table.ShadowFormat)

Modifica del testo di intestazioni e piè di pagina

Si accede al contenuto di intestazioni e piè di pagina di un foglio elettronico per mezzo delle seguenti proprietà:

LeftPageHeaderContent (Object)
Contenuto delle intestazioni delle pagine pari (servizio com.sun.star.sheet.HeaderFooterContent)
RightPageHeaderContent (Object)
Contenuto delle intestazioni delle pagine dispari (servizio com.sun.star.sheet.HeaderFooterContent)
LeftPageFooterContent (Object)
Contenuto dei piè di pagina delle pagine pari (servizio com.sun.star.sheet.HeaderFooterContent)
RightPageFooterContent (Object)
Contenuto dei piè di pagina delle pagine dispari (servizio com.sun.star.sheet.HeaderFooterContent)

Se non è necessario distinguere tra intestazioni e piè di pagina di pagine pari e dispari (ovvero la proprietà FooterIsShared è False), impostare le proprietà delle intestazioni e dei piè di pagina sulle pagine dispari.

Tutti gli oggetti citati restituiscono un oggetto che supporta il servizio com.sun.star.sheet.HeaderFooterContent. Per mezzo delle proprietà (non originali) LeftText, CenterText e RightText, questo servizio mette a disposizione tre elementi di testo per le intestazioni e i piè di pagina di Apache OpenOffice Calc.

L'esempio seguente scrive il valore "Just a Test" nel campo di testo di sinistra dell'intestazione del modello "Default".

Dim Doc As Object
Dim Sheet As Object
Dim StyleFamilies As Object 
Dim PageStyles As Object
Dim DefPage As Object
Dim HText As Object
Dim HContent As Object
Doc = StarDesktop.CurrentComponent
StyleFamilies = Doc.StyleFamilies
PageStyles = StyleFamilies.getByName("PageStyles")
DefPage = PageStyles.getByName("Default")
 
DefPage.HeaderIsOn = True
HContent = DefPage.RightPageHeaderContent
HText = HContent.LeftText
HText.String = "Just a Test."
DefPage.RightPageHeaderContent = HContent

Osservare l'ultima riga dell'esempio: una volta modificato il testo, per rendere effettiva la modifica l'oggetto TextContent deve essere di nuovo assegnato all'intestazione.

Per i documenti di testo (Apache OpenOffice Writer) è disponibile un altro meccanismo di modifica del testo di intestazioni e piè di pagina, perché in questo contesto sono formati da un singolo blocco di testo. Le proprietà seguenti sono definite nel servizio com.sun.star.style.PageProperties:

HeaderText (Object)
Oggetto testo con i contenuti dell'intestazione (servizio com.sun.star.text.XText)
HeaderTextLeft (Object)
Oggetto testo con i contenuti dell'intestazione delle pagine di sinistra (servizio com.sun.star.text.XText)
HeaderTextRight (Object)
Oggetto testo con i contenuti dell'intestazione delle pagine di destra (servizio com.sun.star.text.XText)
FooterText (Object)
Oggetto testo con i contenuti del piè di pagina (servizio com.sun.star.text.XText)
FooterTextLeft (Object)
Oggetto testo con i contenuti dei piè di pagina delle pagine di sinistra (servizio com.sun.star.text.XText)
FooterTextRight (Object)
Oggetto testo con i contenuti dei piè di pagina delle pagine di destra (servizio com.sun.star.text.XText)

L'esempio seguente crea un'intestazione nel modello di pagina "Default" per i documenti di testo e aggiunge il testo "Just a Test" all'intestazione.

Dim Doc As Object
Dim Sheet As Object
Dim StyleFamilies As Object 
Dim PageStyles As Object
Dim DefPage As Object
Dim HText As Object
 
Doc = StarDesktop.CurrentComponent
StyleFamilies = Doc.StyleFamilies
PageStyles = StyleFamilies.getByName("PageStyles")
DefPage = PageStyles.getByName("Default")
 
DefPage.HeaderIsOn = True
HText = DefPage.HeaderText 
 
HText.String = "Just a Test."

In questo caso, l'accesso viene fornito direttamente tramite la proprietà HeaderText del modello di pagina anziché dall'oggetto HeaderFooterContent.

Centratura (solo fogli elettronici)

Il servizio com.sun.star.sheet.TablePageStyle è utilizzato solo nei modelli di pagina di Apache OpenOffice Calc e permette di centrare sulla pagina gli intervalli di celle da stampare. Questo servizio dispone delle proprietà seguenti:

CenterHorizontally (Boolean)
I contenuti della tabella vengono centrati orizzontalmente
CenterVertically (Boolean)
I contenuti della tabella vengono centrati verticalmente

Definizione degli elementi da stampare (solo fogli elettronici)

Durante la formattazione dei fogli è possibile definire gli elementi della pagina da rendere visibili. A tal fine, il servizio com.sun.star.sheet.TablePageStyle fornisce le proprietà seguenti:

PrintAnnotations (Boolean)
Stampa i commenti delle celle
PrintGrid (Boolean)
Stampa la griglia delle celle
PrintHeaders (Boolean)
Stampa le intestazioni di righe e colonne
PrintCharts (Boolean)
Stampa i diagrammi contenuti in un foglio
PrintObjects (Boolean)
Stampa gli oggetti incorporati
PrintDrawing (Boolean)
Stampa gli oggetti di disegno
PrintDownFirst (Boolean)
Se i contenuti di un foglio si estendono su diverse pagine, vengono prima stampati in ordine decrescente verticale, procedendo in direzione inferiore destra
PrintFormulas (Boolean)
Stampa le formule anziché i valori calcolati
PrintZeroValues (Boolean)
Stampa gli zeri
Content on this page is licensed under the Public Documentation License (PDL).
Personal tools