Applicare la formattazione della tabella
Ogni elemento di una tabella può essere applicato con una formattazione diversa. Ad esempio, la formattazione della tabella verrà applicata all’intera tabella, la formattazione delle righe solo a righe particolari, la formattazione delle celle solo a determinate celle.
Aspose.Words fornisce un rich API 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 della tabella e quali impostazioni di formattazione della tabella Aspose.Words supportano.
Applicare 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 è possibile utilizzare le proprietà disponibili sul nodo Table corrispondente utilizzando le classi Table, PreferredWidth e TableCollection.
Le immagini seguenti mostrano una rappresentazione delle caratteristiche di formattazione Table in Microsoft Word e delle loro proprietà corrispondenti in Aspose.Words.
Nell’esempio di codice seguente viene illustrato come applicare un bordo 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 caratteristiche di formattazione Row in Microsoft Word e delle 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.
Si noti che a Cell può essere solo un nodo figlio di a Row. Allo stesso tempo, deve esserci almeno un Paragraph nel Cell in modo che la formattazione possa essere applicata ad esso.
Oltre a Paragraph, è anche possibile inserire un Table in un Cell.
Le immagini seguenti mostrano una rappresentazione delle caratteristiche di formattazione Cell in Microsoft Word e delle 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 è usare DocumentBuilder. Utilizzando le proprietà RowFormat appropriate, è possibile impostare l’impostazione di altezza predefinita o applicare un’altezza diversa per ogni riga della tabella.
In Aspose.Words, l’altezza della riga della tabella è controllata da:
- la proprietà altezza riga- Height
- la proprietà regola altezza per la riga specificata- HeightRule
Allo stesso tempo, è possibile impostare un’altezza diversa per ogni riga: ciò consente di controllare ampiamente le impostazioni della tabella.
Nell’esempio di codice riportato di seguito viene illustrato come creare una tabella contenente una singola cella e applicare la formattazione delle righe:
Specificare le larghezze di tabella e cella
Una tabella in un documento Microsoft Word fornisce diversi modi per ridimensionare la tabella e le singole celle. Queste proprietà consentono un controllo considerevole 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 influire sul modo in cui vengono calcolate le larghezze della tabella complessiva e delle singole celle:
- Larghezza preferita sul tavolo
- Larghezza preferita sulle singole celle
- Consentire l’autofit sul tavolo
Questo articolo descrive in dettaglio come funzionano le varie proprietà di calcolo della larghezza della tabella e come ottenere il pieno controllo sul calcolo della larghezza della tabella. Questo è particolarmente utile sapere in questi casi in cui il layout della tabella non appare come previsto.
Nella maggior parte dei casi, la cella preferita è consigliata 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 della tabella preferita può influire sulla larghezza effettiva della cella.
La larghezza di cella preferita è una proprietà di cella memorizzata nel documento. Non dipende da nulla e non cambia quando si modifica 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, che è la dimensione che un elemento si sforza di adattare. Cioè, la larghezza preferita può essere specificata per l’intera tabella o per singole celle. In alcune situazioni potrebbe non essere possibile adattare esattamente questa larghezza, ma la larghezza effettiva sarà vicina a questo valore nella maggior parte dei casi.
Il tipo e il valore di larghezza preferiti appropriati vengono impostati utilizzando i metodi della classe PreferredWidth:
- il campo Auto per specificare auto o"nessuna larghezza preferita"
- il metodo FromPercent per specificare una larghezza percentuale
- il metodo FromPoints per specificare la larghezza in punti
Le immagini sottostanti mostrano una rappresentazione di preferred width setting features in Microsoft Word e delle 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 larghezza della tabella o della cella preferita
In Aspose.Words, le larghezze di tabella e cella vengono impostate utilizzando le proprietà Table.PreferredWidth e CellFormat.PreferredWidth, con le opzioni disponibili nell’enumerazione PreferredWidthType:
- Auto, che equivale a nessun set di larghezza preferito
- Percent, che si adatta all’elemento rispetto allo spazio disponibile nella dimensione della finestra o del contenitore e ricalcola il valore quando la larghezza disponibile cambia
- Points, che corrisponde a un elemento della larghezza specificata in punti
L’uso 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 su auto-fit al 50% della larghezza della pagina:
L’uso della proprietà CellFormat.PreferredWidth su una data cella regolerà la sua larghezza preferita.
Il seguente esempio di codice mostra come impostare le diverse impostazioni di larghezza preferite:
Trova il tipo di larghezza e il valore preferiti
È possibile utilizzare le proprietà Type e Value per trovare i dettagli di larghezza preferiti della tabella o della cella desiderata.
L’esempio di codice seguente mostra come recuperare il tipo di larghezza preferito di una cella di tabella:
Come impostare Autofit
La proprietà AllowAutoFit consente alle celle di una tabella di crescere e ridursi in base a un criterio selezionato. Ad esempio, è possibile utilizzare l’opzione AutoFit to Window per adattare la tabella alla larghezza della pagina e l’opzione AutoFit to Content per consentire a ciascuna cella di crescere o ridursi in base al suo contenuto.
Per impostazione predefinita, Aspose.Words inserisce una nuova tabella usando AutoFit to Window. La tabella sarà dimensionata in base alla larghezza della pagina disponibile. Per ridimensionare una tabella, è possibile chiamare il metodo AutoFit. Questo metodo accetta un’enumerazione AutoFitBehavior che specifica il tipo di autofit applicato alla tabella.
È importante sapere che il metodo autofit è in realtà una scorciatoia che applica diverse proprietà alla tabella allo stesso tempo. Queste sono proprietà che in realtà danno alla tabella il comportamento osservato. Discuteremo queste proprietà per ogni opzione autofit.
L’esempio di codice seguente mostra come impostare una tabella per ridurre o aumentare ogni cella in base al suo contenuto:
Useremo la seguente tabella per applicare le varie impostazioni di adattamento automatico come dimostrazione.
AutoFit Tabella alla finestra
Quando si applica l’autofitting a una finestra 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 pari a 100%
- CellFormat.PreferredWidth viene rimosso da tutte le celle della tabella
Si noti che questo è leggermente diverso dal comportamento Microsoft Word, in cui la larghezza preferita di ogni cella è impostata su valori appropriati in base alle dimensioni e al contenuto correnti. Aspose.Words non aggiorna la larghezza preferita, quindi vengono semplicemente cancellati.
- 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 man mano che l’utente modifica il testo
L’esempio di codice seguente mostra come inserire automaticamente una tabella nella larghezza della pagina:
Un esempio di come queste opzioni vengono applicate alla tabella sopra può essere visto nell’immagine qui sotto.
AutoFit Tabella al contenuto
Quando la tabella viene autofittata del 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 rimossa per ogni cella della tabella
Si noti che questa opzione autofit rimuove la larghezza preferita dalle celle, proprio come in Microsoft Word. Se si desidera mantenere le dimensioni delle colonne e aumentare o diminuire le colonne per adattarle al contenuto, è necessario impostare la proprietà Table.AllowAutoFit su True da sola anziché utilizzare il collegamento autofit. -
Le larghezze di colonna vengono ricalcolate per il contenuto della tabella corrente: il risultato finale è una tabella in cui le larghezze di colonna e la larghezza dell’intera tabella vengono ridimensionate automaticamente per adattarsi al meglio al contenuto man mano che l’utente modifica il testo
L’esempio di codice seguente mostra come inserire automaticamente una tabella nel suo contenuto:
Un esempio di come queste opzioni vengono applicate alla tabella sopra può essere visto nell’immagine qui sotto.
Disabilita AutoFit nella tabella e usa larghezze di colonna fisse
Se in una tabella è disabilitato l’autofit e vengono utilizzate invece larghezze di colonna fisse, vengono eseguite le seguenti operazioni:
- La proprietà Table.AllowAutoFit è disabilitata in modo che le colonne non crescano o si riducano al loro contenuto
- La larghezza preferita dell’intera tabella viene rimossa da Table.PreferredWidth, CellFormat.PreferredWidth viene rimossa da tutte le celle della tabella
- Il risultato finale è una tabella le cui larghezze di colonna 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
L’esempio di codice seguente mostra come disabilitare l’autofit e abilitare la larghezza fissa per la tabella specificata:
Un esempio di come queste opzioni vengono applicate alla tabella sopra può essere visto nell’immagine qui sotto.
Ordine di precedenza nel calcolo della larghezza della cella
Aspose.Words consente agli utenti di definire la larghezza di una tabella o di una cella attraverso più oggetti, tra cui CellFormat – la sua proprietà Width è per lo più rimasta dalle versioni precedenti, tuttavia, è ancora 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à width esiste già nella tabella.
Aspose.Words utilizza l’ordine seguente per calcolare le larghezze delle celle:
Ordine | Proprieta | Descrizione |
---|---|---|
AllowAutoFit è determinato | Se AutoFit è abilitato: - la tabella può crescere oltre la larghezza preferita per accogliere il contenuto-di solito non si restringe al di sotto della larghezza preferita - qualsiasi modifica al valore CellFormat.Width viene ignorata e la cella si adatta al suo contenuto |
|
PreferredWidthType con un valore di Points o Percent | CellFormat.Width viene ignorato | |
PreferredWidthType con un valore di Auto | Il valore da CellFormat.Width viene copiato e diventa la larghezza preferita della cella (in punti) |
Consentire la spaziatura tra le celle
È possibile ottenere o impostare qualsiasi spazio aggiuntivo tra le celle della tabella simile all’opzione “Spaziatura celle” in Microsoft Word. Questo può essere fatto usando 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.
Il seguente esempio di codice mostra come impostare la spaziatura tra le celle:
Applicare bordi e ombreggiature
I bordi e l’ombreggiatura possono essere applicati all’intera tabella usando Table.SetBorder, Table.SetBorders e Table.SetShading o solo a celle specifiche usando CellFormat.Borders e CellFormat.Shading. Inoltre, i bordi delle righe possono essere impostati usando RowFormat.Borders, tuttavia l’ombreggiatura non può essere applicata in questo modo.
Le immagini qui sotto 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 sfumature diversi: