Applica formattazione tabella
A ogni elemento di una tabella può essere applicata una formattazione diversa. Ad esempio, la formattazione della tabella verrà applicata all’intera tabella, la formattazione delle righe solo a determinate righe e la formattazione delle celle solo a determinate celle.
Aspose.Words fornisce un testo API ricco per recuperare e applicare la formattazione a una tabella. È possibile utilizzare i nodi Table, RowFormat e CellFormat per impostare la formattazione.
In questo articolo parleremo di come applicare la formattazione a diversi nodi di tabella e di quali impostazioni di formattazione della tabella sono supportate da Aspose.Words.
Applica la formattazione a diversi nodi
In questa sezione esamineremo l’applicazione della formattazione a vari nodi della tabella.
Formattazione a livello di tabella
Per applicare la formattazione a una tabella, puoi utilizzare le proprietà disponibili sul nodo Table corrispondente utilizzando le classi Table, PreferredWidth e TableCollection.
Le immagini seguenti mostrano una rappresentazione delle funzionalità di formattazione Table in Microsoft Word e le loro proprietà corrispondenti in Aspose.Words.
L’esempio di codice seguente mostra come applicare un bordo di contorno a una tabella:
L’esempio di codice seguente mostra come creare una tabella con tutti i bordi abilitati (griglia):
Formattazione a livello di riga
La formattazione A livello di riga può essere controllata utilizzando le classi Row, RowFormat e RowCollection.
Le immagini seguenti mostrano una rappresentazione delle funzionalità di formattazione Row in Microsoft Word e le loro proprietà corrispondenti in Aspose.Words.
L’esempio di codice seguente mostra come modificare la formattazione della riga della tabella:
Formattazione a livello di cella
La formattazione a livello di cella è controllata dalle classi Cell, CellFormat e CellCollection.
Tieni presente che un Cell può essere solo un nodo figlio di un Row. Allo stesso tempo, deve esserci almeno un Paragraph nel Cell in modo che sia possibile applicargli la formattazione.
Oltre al Paragraph, puoi anche inserire un Table in un Cell.
Le immagini seguenti mostrano una rappresentazione delle funzionalità di formattazione Cell in Microsoft Word e le loro proprietà corrispondenti in Aspose.Words.
L’esempio di codice seguente mostra come modificare la formattazione di una cella di tabella:
Il seguente esempio di codice mostra come impostare la quantità di spazio (in punti) da aggiungere a sinistra/in alto/a destra/in basso del contenuto della cella:
Specificare le altezze delle righe
Il modo più semplice per impostare l’altezza della riga è utilizzare DocumentBuilder. Utilizzando le proprietà RowFormat appropriate, puoi impostare l’altezza predefinita o applicare un’altezza diversa per ogni riga nella tabella.
In Aspose.Words, l’altezza delle righe della tabella è controllata da:
- la proprietà dell’altezza della riga – Height
- la proprietà della regola dell’altezza per la riga specificata – HeightRule
Allo stesso tempo, è possibile impostare un’altezza diversa per ogni riga: ciò consente di controllare ampiamente le impostazioni del tavolo.
L’esempio di codice seguente mostra come creare una tabella che contiene una singola cella e applicare la formattazione della riga:
Specificare la larghezza della tabella e delle celle
Una tabella in un documento Microsoft Word offre diversi modi per ridimensionare la tabella e le singole celle. Queste proprietà consentono un notevole controllo sull’aspetto e sul comportamento della tabella, in modo che Aspose.Words supporti il comportamento delle tabelle, come in Microsoft Word.
È importante sapere che gli elementi della tabella presentano diverse proprietà che possono influenzare il modo in cui viene calcolata la larghezza della tabella complessiva, nonché delle singole celle:
- Larghezza preferita sul tavolo
- Larghezza preferita sulle singole celle
- Consentire l’adattamento automatico sul tavolo
Questo articolo descrive in dettaglio come funzionano le varie proprietà di calcolo della larghezza della tabella e come ottenere il controllo completo sul calcolo della larghezza della tabella. Questo è particolarmente utile da sapere nei casi in cui il layout della tabella non appare come previsto.
Nella maggior parte dei casi, è consigliata la cella preferita rispetto alla larghezza della tabella. La larghezza della cella preferita è più in linea con le specifiche del formato DOCX e con il modello Aspose.Words.
La larghezza della cella è in realtà un valore calcolato per il formato DOCX. La larghezza effettiva della cella può dipendere da molte cose. Ad esempio, la modifica dei margini della pagina o della larghezza preferita della tabella può influire sulla larghezza effettiva della cella.
La larghezza della cella preferita è una proprietà della cella archiviata nel documento. Non dipende da nulla e non cambia quando cambi la tabella o altre proprietà della cella.
Come utilizzare la larghezza preferita
La larghezza desiderata di una tabella o di singole celle viene definita tramite la proprietà larghezza preferita, ovvero la dimensione che un elemento cerca di adattarsi. Cioè, è possibile specificare la larghezza preferita per l’intera tabella o per singole celle. In alcune situazioni potrebbe non essere possibile adattare esattamente questa larghezza, ma nella maggior parte dei casi la larghezza effettiva sarà vicina a questo valore.
Il tipo e il valore di larghezza preferiti appropriati vengono impostati utilizzando i metodi della classe PreferredWidth:
- il metodo Auto per specificare la larghezza automatica o “nessuna larghezza preferita”
- il metodo FromPercent per specificare una larghezza percentuale
- il metodo FromPoints per specificare la larghezza in punti
Le immagini seguenti mostrano una rappresentazione delle funzioni di impostazione della larghezza preferite in Microsoft Word e le loro proprietà corrispondenti in Aspose.Words.
Un esempio di come queste opzioni vengono applicate a una tabella reale in un documento può essere visto nell’immagine qui sotto.
Specificare la tabella preferita o la larghezza della cella
In Aspose.Words, le larghezze di tabelle e celle vengono impostate utilizzando la proprietà Table.PreferredWidth e la proprietà CellFormat.PreferredWidth, con le opzioni disponibili nell’enumerazione PreferredWidthType:
- Auto, che equivale a non impostare alcuna larghezza preferita
- Percent, che adatta l’elemento rispetto allo spazio disponibile nella dimensione della finestra o del contenitore, e ricalcola il valore quando cambia la larghezza disponibile
- Points, che corrisponde a un elemento della larghezza specificata in punti
L’utilizzo della proprietà Table.PreferredWidth regolerà la sua larghezza preferita rispetto al suo contenitore: pagina, colonna di testo o cella di tabella esterna se si tratta di una tabella nidificata.
L’esempio di codice seguente mostra come impostare la tabella per l’adattamento automatico al 50% della larghezza della pagina:
L’utilizzo della proprietà CellFormat.PreferredWidth su una determinata cella ne regolerà la larghezza preferita.
Il seguente esempio di codice mostra come impostare le diverse impostazioni di larghezza preferite:
Trova il tipo e il valore di larghezza preferiti
È possibile utilizzare le proprietà Type e Value per trovare i dettagli della larghezza preferita della tabella o cella desiderata.
L’esempio di codice seguente mostra come recuperare il tipo di larghezza preferito di una cella di tabella:
Come impostare l’adattamento automatico
La proprietà AllowAutoFit consente alle celle di una tabella di crescere e ridursi in base a un criterio selezionato. Ad esempio, puoi utilizzare l’opzione Adatta automaticamente alla finestra per adattare la tabella alla larghezza della pagina e l’opzione Adattamento automatico al contenuto per consentire a ciascuna cella di crescere o ridursi in base al suo contenuto.
Per impostazione predefinita, Aspose.Words inserisce una nuova tabella utilizzando Adatta automaticamente alla finestra. La tabella verrà dimensionata in base alla larghezza della pagina disponibile. Per ridimensionare una tabella, puoi chiamare il metodo AutoFit. Questo metodo accetta un’enumerazione AutoFitBehavior che specifica il tipo di adattamento automatico applicato alla tabella.
È importante sapere che il metodo di adattamento automatico è in realtà una scorciatoia che applica contemporaneamente proprietà diverse alla tabella. Queste sono proprietà che effettivamente danno alla tabella il comportamento osservato. Discuteremo queste proprietà per ciascuna opzione di adattamento automatico.
L’esempio di codice seguente mostra come impostare una tabella per ridurre o ingrandire ogni cella in base al suo contenuto:
Adatta tabella alla finestra
Quando l’adattamento automatico a una finestra viene applicato a una tabella, le seguenti operazioni vengono effettivamente eseguite dietro le quinte:
- La proprietà Table.AllowAutoFit è abilitata per ridimensionare automaticamente le colonne per adattarle al contenuto disponibile, utilizzando un valore Table.PreferredWidth del 100%
- CellFormat.PreferredWidth viene rimosso da tutte le celle della tabella
Tieni presente che questo è leggermente diverso dal comportamento Microsoft Word, in cui la larghezza preferita di ciascuna cella è impostata su valori appropriati in base alla dimensione e al contenuto correnti. Aspose.Words non aggiorna la larghezza preferita, quindi vengono semplicemente cancellate.
- Le larghezze delle colonne vengono ricalcolate per il contenuto della tabella corrente: il risultato finale è una tabella che occupa l’intera larghezza disponibile
- La larghezza delle colonne nella tabella cambia automaticamente quando l’utente modifica il testo
L’esempio di codice seguente mostra come adattare automaticamente una tabella alla larghezza della pagina:
Adatta tabella al contenuto
Quando la tabella adatta automaticamente il contenuto, i seguenti passaggi vengono effettivamente eseguiti dietro le quinte:
-
La proprietà Table.AllowAutoFit è abilitata per ridimensionare automaticamente ogni cella in base al suo contenuto
-
La larghezza della tabella preferita viene rimossa da Table.PreferredWidth, CellFormat.PreferredWidth viene rimosso per ogni cella della tabella
Tieni presente che questa opzione di adattamento automatico rimuove la larghezza preferita dalle celle, proprio come in Microsoft Word. Se desideri mantenere le dimensioni delle colonne e aumentare o diminuire le colonne per adattarle al contenuto, devi impostare la proprietà Table.AllowAutoFit su True da sola anziché utilizzare la scorciatoia di adattamento automatico. -
Le larghezze delle colonne vengono ricalcolate per il contenuto della tabella corrente: il risultato finale è una tabella in cui le larghezze delle colonne e la larghezza dell’intera tabella vengono ridimensionate automaticamente per adattarsi al meglio al contenuto mentre l’utente modifica il testo
L’esempio di codice seguente mostra come adattare automaticamente una tabella al suo contenuto:
Disattiva l’adattamento automatico nella tabella e utilizza larghezze colonne fisse
Se in una tabella l’adattamento automatico è disabilitato e vengono utilizzate invece larghezze di colonna fisse, vengono eseguiti i seguenti passaggi:
-
La proprietà Table.AllowAutoFit è disabilitata in modo che le colonne non aumentino o si riducano al loro contenuto
-
La larghezza preferita dell’intera tabella viene rimossa da Table.PreferredWidth, CellFormat.PreferredWidth viene rimosso da tutte le celle della tabella
-
Il risultato finale è una tabella le cui larghezze delle colonne sono determinate dalla proprietà CellFormat.Width e le cui colonne non vengono ridimensionate automaticamente quando l’utente inserisce del testo o quando la pagina viene ridimensionata
Il seguente esempio di codice mostra come disabilitare l’adattamento automatico e abilitare la larghezza fissa per la tabella specificata:
Ordine di precedenza nel calcolo della larghezza della cella
Aspose.Words consente agli utenti di definire la larghezza di una tabella o cella attraverso più oggetti, incluso CellFormat: la sua proprietà Width è per lo più lasciata dalle versioni precedenti, tuttavia è comunque utile per semplificare l’impostazione della larghezza della cella.
È importante sapere che la proprietà CellFormat.Width funziona in modo diverso a seconda di quale delle altre proprietà di larghezza esiste già nella tabella.
Aspose.Words utilizza il seguente ordine per calcolare la larghezza delle celle:
Ordine | Proprietà | Descrizione |
---|---|---|
1 | AllowAutoFit è determinato | Se AutoFit è abilitato: - la tabella potrebbe crescere oltre la larghezza preferita per accogliere il contenuto; solitamente non si restringe al di sotto della larghezza preferita - qualsiasi modifica al valore CellFormat.Width viene ignorata e la cella si adatterà invece al suo contenuto |
2 | PreferredWidthType con un valore Points o Percent | CellFormat.Width viene ignorato |
3 | PreferredWidthType con un valore Auto | Il valore di CellFormat.Width viene copiato e diventa la larghezza preferita della cella (in punti) |
Consenti spaziatura tra le celle
Puoi ottenere o impostare qualsiasi spazio aggiuntivo tra le celle della tabella in modo simile all’opzione “Spaziatura celle” in Microsoft Word. Questo può essere fatto utilizzando la proprietà AllowCellSpacing.
Un esempio di come queste opzioni vengono applicate a una tabella reale in un documento può essere visto nell’immagine qui sotto.
L’esempio di codice seguente mostra come impostare la spaziatura tra le celle:
Applica bordi e ombreggiatura
I bordi e l’ombreggiatura possono essere applicati all’intera tabella utilizzando Table.SetBorder, Table.SetBorders e Table.SetShading o solo a celle specifiche utilizzando CellFormat.Borders e CellFormat.Shading. Inoltre, i bordi delle righe possono essere impostati utilizzando RowFormat.Borders, tuttavia non è possibile applicare l’ombreggiatura in questo modo.
Le immagini sottostanti mostrano le impostazioni del bordo e dell’ombra in Microsoft Word e le loro proprietà corrispondenti in Aspose.Words.
L’esempio di codice seguente mostra come formattare una tabella e una cella con bordi e ombreggiature diversi: