Come lavorare con gli Stili in .NET

Come lavorare con gli Stili in .NET

Questa guida mostra come cercare, applicare e creare stili di paragrafo, carattere, tabella e elenco in Aspose.Words FOSS per .NET, usando il Style, StyleCollection, e TableStyle classi. Copre la lettura della raccolta di stili di un documento, la ricerca affidabile degli stili tra le lingue, l’applicazione degli stili a paragrafi e run, la creazione e la copia degli stili e la configurazione della formattazione condizionale per regione sugli stili di tabella.

Guida passo passo

Passo 1: Installa il pacchetto

Aspose.Words FOSS per .NET non pubblica ancora un pacchetto NuGet – costruisci la libreria dal codice sorgente invece. Clona https://github.com/aspose-words-foss/Aspose.Words-FOSS-for-.NET.git, poi compila Aspose.Words.sln in configurazione Release con il SDK .NET e fai riferimento all’assembly Aspose.Words risultante dal tuo progetto. La libreria mira a .NET Standard 2.0, quindi funziona su .NET Framework 4.6.2+ e .NET 6/8/10.


Passo 2: Importa le classi richieste

Aggiungi una direttiva using Aspose.Words; – Style, StyleCollection, TableStyle, StyleType, StyleIdentifier, ConditionalStyle, ConditionalStyleCollection e ConditionalStyleType si trovano tutti nello spazio dei nomi Aspose.Words insieme a Document.


Passo 3: Leggere la Raccolta di Stili di un Documento

Document.Styles restituisce un StyleCollection – ogni Style integrato e definito dall’utente collegato al documento. StyleCollection.Count segnala quanti stili contiene, e DefaultFont / DefaultParagraphFormat descrivono la formattazione predefinita a livello di documento che il nuovo contenuto eredita prima che venga applicato alcuno stile esplicito.


Passo 4: Cercare uno Stile in modo Affidabile

Recupera uno stile tramite il suo nome visualizzato usando l’indicizzatore StyleCollection, styles[name]. Per gli stili integrati, preferisci lo stesso indicizzatore con un valore enum StyleIdentifier – styles[sti] – i nomi sono localizzati, ma i valori StyleIdentifier no, quindi la ricerca per identificatore funziona allo stesso modo indipendentemente dalla lingua del documento. Controlla Style.Aliases per i nomi alternativi che Word riconosce per lo stesso stile se l’indicizzatore non trova ciò che ti aspetti, e controlla Style.BuiltIn prima di rimuovere o rinominare uno stile programmaticamente, poiché gli stili integrati sono spesso referenziati per nome altrove nel documento.


Passo 5: Applicare uno Stile a Paragrafi o Run

Gli oggetti di formattazione che possiedono uno stile espongono sia una proprietà Style (l’oggetto Style stesso) sia una proprietà StyleName (una scorciatoia che risolve, o crea, uno stile per nome). Imposta ParagraphFormat.Style o ParagraphFormat.StyleName per applicare uno stile di paragrafo, e Font.Style o Font.StyleName per applicare uno stile di carattere alla formattazione di un run. Assegnare StyleName con un nome che non esiste già nella raccolta crea quello stile – verifica prima che lo stile esista con l’indicizzatore StyleCollection, oppure assegna direttamente l’oggetto Style, se questo non è il comportamento desiderato.


Passo 6: Costruire Gerarchie di Stili

Leggi BaseStyleName per individuare lo stile da cui un dato stile eredita la formattazione non impostata, LinkedStyleName per uno stile di paragrafo/carattere associato (come Word definisce per gli stili integrati, ad esempio un’intestazione e il suo stile di carattere collegato), e NextParagraphStyleName per lo stile che Word assegna a un nuovo paragrafo digitato dopo uno che utilizza questo stile. Imposta BaseStyleName quando definisci un insieme di stili correlati – come una famiglia di stili di intestazione che devono tutti ereditare le scelte di font da uno stile base – invece di ripetere la stessa formattazione su ogni stile.


Passo 7: Crea o Copia uno Stile

Chiama StyleCollection.Add(type, name) con un StyleType (Paragraph, Character, Table o List) e un nome per creare un nuovo stile vuoto, quindi imposta le proprietà Font e ParagraphFormat secondo necessità. Per duplicare uno stile esistente — incluso uno proveniente dal StyleCollection di un diverso Document — chiama StyleCollection.AddCopy(style) anziché leggere manualmente e riapplicare ogni proprietà di formattazione. Chiama Style.Remove() per eliminare uno stile dalla sua collezione.


Passo 8: Configura gli Stili della Tabella e la Formattazione Condizionale

TableStyle estende Style con proprietà di layout della tabella — Alignment, CellSpacing, LeftIndent, Shading, VerticalAlignment e le quattro proprietà di padding (LeftPadding, RightPadding, TopPadding, BottomPadding) — oltre a RowStripe e ColumnStripe, che controllano su quante righe o colonne si ripete un modello di bande. Per la formattazione per regione, configura TableStyle.ConditionalStyles — un ConditionalStyleCollection che contiene un ConditionalStyle per regione: FirstRow, LastRow, FirstColumn, LastColumn, OddRowBanding, EvenRowBanding, OddColumnBanding, EvenColumnBanding e le quattro celle d’angolo (TopLeftCell, TopRightCell, BottomLeftCell, BottomRightCell). Ogni ConditionalStyle possiede il proprio Font, ParagraphFormat, Shading, Borders e padding delle celle, con Type che indica quale regione ConditionalStyleType rappresenta; imposta la formattazione su queste regioni anziché sulle singole righe della tabella per ottenere una formattazione a bande, di intestazione o di cella d’angolo che persiste durante le modifiche alla tabella.


Passo 9: Reimposta o Rimuovi la Formattazione

Chiama ConditionalStyle.ClearFormatting() per reimpostare una regione condizionale, o ConditionalStyleCollection.ClearFormatting() per reimpostare tutte le regioni su un TableStyle in una sola volta. StyleCollection.ClearQuickStyleGallery() rimuove tutti gli stili dalla galleria di stili rapidi dell’interfaccia di Word senza eliminare gli stili stessi — utile per ridurre la galleria senza modificare il contenuto del documento.

Problemi Comuni e Soluzioni

StyleCollection indexer restituisce null per una ricerca di nome Il nome dello stile non esiste in questo documento, o uno stile predefinito non è ancora stato usato, quindi Word non lo ha ancora materializzato. Controlla Style.Aliases per i nomi alternativi, o usa il StyleCollection indicizzatore con un StyleIdentifier per gli stili integrati invece.

Impostare StyleName crea inaspettatamente un nuovo stile StyleName crea lo stile denominato se non esiste già nella collezione. Usa il StyleCollection indicizzatore prima per confermare che lo stile esista, o assegna il Style oggetto direttamente tramite il Style proprietà invece di StyleName.

Il banding della tabella non appare dopo aver applicato un TableStyle Le regioni di formattazione condizionale – OddRowBanding, EvenRowBanding, e simili – non sono mai state configurate su TableStyle.ConditionalStyles. Imposta la formattazione sulle voci pertinenti ConditionalStyle voci in ConditionalStyleCollection.

Una modifica di stile non influisce sul contenuto che già utilizza lo stile La formattazione diretta (manuale) applicata sopra lo stile ha la precedenza sulle impostazioni dello stile stesso. Cancella la formattazione diretta sui run o paragrafi interessati, oppure imposta Style.AutomaticallyUpdate in modo che lo stile si ridefinisca a partire da quella formattazione manuale.

Una ricerca di stile incorporato fallisce in un documento redatto in un’altra lingua Il StyleCollection indexer corrisponde al nome visualizzato, che è localizzato, quando viene chiamato con un nome. Usa lo stesso indexer con il valore enum corrispondente StyleIdentifier valore enum invece, poiché tale identificatore è indipendente dalla lingua.

Domande Frequenti

Come posso ottenere la collezione di tutti gli stili in un documento?

Leggi Document.Styles, che restituisce un StyleCollection contenente tutti gli Style incorporati e definiti dall’utente in quel documento.

Qual è la differenza tra Style e StyleIdentifier?

Style è l’oggetto stile reale con la sua formattazione; StyleIdentifier è un valore enum indipendente dalla lingua usato per cercare uno stile incorporato specifico indipendentemente dalla lingua del documento, tramite l’indicizzatore StyleCollection.

In che modo gli stili di tabella differiscono dagli stili di paragrafo o di carattere?

TableStyle è una sottoclasse di Style che aggiunge proprietà di layout della tabella (Alignment, CellSpacing, padding) e una raccolta ConditionalStyles per la formattazione specifica della regione, come righe a bande, righe di intestazione e celle d’angolo — concetti di formattazione che non si applicano agli stili di paragrafo o di carattere.

Posso creare uno stile completamente nuovo invece di modificare uno esistente?

Sì – chiama StyleCollection.Add(type, name) con il StyleType desiderato e un nuovo nome per creare uno stile vuoto, quindi imposta le sue proprietà di formattazione (Font, ParagraphFormat, e così via per gli stili di paragrafo o di carattere).

Come duplico uno stile, anche da un altro documento?

Chiama StyleCollection.AddCopy(style), passando un oggetto Style – che può provenire dal Document’s StyleCollection di un documento diverso – per aggiungere una copia di esso alla raccolta di destinazione.

Vedi anche

 Italiano