Applica formattazione

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. Puoi 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.

formattin-features-table-level-aspose-words-python

formatting-table-options-aspose-words-python

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.

formatting-row-level-aspose-words-python

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.

Le immagini seguenti mostrano una rappresentazione delle funzionalità di formattazione Cell in Microsoft Word e le loro proprietà corrispondenti in Aspose.Words.

formatting-cell-level-aspose-words-python

auto-formatting-cell-level-aspose-words-python

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:

Specifica della 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.

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.

formatting-table-properties-aspose-words-python

Un esempio di come queste opzioni vengono applicate a una tabella reale in un documento può essere visto nell’immagine qui sotto.

tables-applying-options-python

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:

Individuazione del tipo e del valore di larghezza preferiti

È possibile utilizzare le proprietà Type e Value per trovare i dettagli sulla 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 ciascuna 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:

  1. La proprietà Table.AllowAutoFit è abilitata per ridimensionare automaticamente le colonne per adattarle al contenuto disponibile, utilizzando un valore Table.PreferredWidth del 100%
  2. CellFormat.PreferredWidth viene rimosso da tutte le celle della tabella
  3. Le larghezze delle colonne vengono ricalcolate per il contenuto della tabella corrente: il risultato finale è una tabella che occupa l’intera larghezza disponibile
  4. 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:

  1. La proprietà Table.AllowAutoFit è abilitata per ridimensionare automaticamente ogni cella in base al suo contenuto

  2. La larghezza della tabella preferita viene rimossa da Table.PreferredWidth, CellFormat.PreferredWidth viene rimosso per ogni cella della tabella

  3. 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:

  1. La proprietà Table.AllowAutoFit è disabilitata in modo che le colonne non aumentino o si riducano al loro contenuto
  2. La larghezza preferita dell’intera tabella viene rimossa da Table.PreferredWidth, CellFormat.PreferredWidth viene rimosso da tutte le celle della tabella
  3. 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:

L’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 verrà 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.

formattazione-spaziatura-tra-celle-aspose-parole-python

L’esempio di codice seguente mostra come impostare la spaziatura tra le celle:

Applicazione di bordi e ombreggiature

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.

formatting-border-line-aspose-words-python

formatting-cell-color-aspose-words-python

L’esempio di codice seguente mostra come formattare una tabella e una cella con bordi e ombreggiature diversi: