Crea tabella in Word utilizzando C# | Crea tabelle nidificate in C#

Le tabelle in un documento Word sono un potente strumento per organizzare e presentare i dati in un formato chiaro e strutturato. Una tabella è composta da righe e colonne che si intersecano per formare celle che possono contenere testo, numeri, immagini o altri elementi. In questo articolo impareremo come creare una tabella nei documenti di Word a livello di codice utilizzando C#. Questo articolo illustra vari metodi per creare tabelle in un file DOCX supportato da esempi di codice.

Questo articolo tratta i seguenti argomenti:

Libreria C# per creare tabelle in documenti Word

Per lavorare con le tabelle nei documenti Word, utilizzeremo la libreria Aspose.Words for .NET. Si tratta di una solida libreria che consente di creare e manipolare dinamicamente documenti Word a livello di programmazione direttamente all’interno delle applicazioni .NET.

Scarica la DLL o installala da NuGet utilizzando il comando seguente:

PM> Install-Package Aspose.Words

Crea una tabella in un documento Word in C#

Esistono due modi per creare tabelle nei documenti Word utilizzando Aspose.Words for .NET:

  • Utilizzando la classe DocumentBuilder
  • Utilizzo del DOM (Document Object Model)

Puoi scegliere il metodo che meglio si adatta alle tue esigenze. Esploriamo quindi ciascuno di questi metodi in dettaglio.

Crea una tabella utilizzando DocumentBuilder

La classe DocumentBuilder consente la creazione efficiente e semplice di documenti dinamici da zero o la modifica di quelli esistenti. Con la sua gamma completa di funzioni, possiamo inserire senza problemi diversi elementi di contenuto, inclusi testo, caselle di controllo, oggetti OLE, paragrafi, elenchi, tabelle, immagini e molto altro.

Segui i passaggi seguenti per creare una tabella in un documento Word utilizzando la classe DocumentBuilder.

  1. Crea un oggetto della classe Document.
  2. Crea un oggetto della classe DocumentBuilder.
  3. Crea una nuova tabella utilizzando il metodo StartTable().
  4. Inserisci una cella utilizzando il metodo InsertCell().
  5. Inserisci il testo nella cella utilizzando il metodo Write().
  6. Ripeti l’inserimento di celle e testo nelle celle come richiesto.
  7. Termina una riga utilizzando il metodo EndRow().
  8. Termina la tabella utilizzando il metodo EndTable().
  9. Infine, salva il documento di Word utilizzando il metodo Save().

L’esempio di codice seguente mostra come creare una tabella in un documento di Word utilizzando C#.

// Questo esempio di codice dimostra come creare una tabella in un documento Word utilizzando C#
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Inizia a costruire la tabella.
builder.StartTable();
builder.InsertCell();
builder.Write("Row 1, Cell 1 Content.");

// Costruisci la seconda cella.
builder.InsertCell();
builder.Write("Row 1, Cell 2 Content.");

// Chiama il metodo seguente per terminare la riga e iniziare una nuova riga.
builder.EndRow();

// Costruisci la prima cella della seconda riga.
builder.InsertCell();
builder.Write("Row 2, Cell 1 Content");

// Costruisci la seconda cella.
builder.InsertCell();
builder.Write("Row 2, Cell 2 Content.");
builder.EndRow();

// Segnala che abbiamo finito di costruire la tabella.
builder.EndTable();

doc.Save("CreateSimpleTable.docx");
Crea una tabella in una parola utilizzando DocumentBuilder

Crea una tabella utilizzando DocumentBuilder

Creare una tabella utilizzando il modello oggetto documento (DOM)

Il Document Object Model (DOM) è una rappresentazione in memoria di un documento Word. Consente l’accesso programmatico per leggere, manipolare e modificare il contenuto e la formattazione di un documento Word.

Segui i passaggi seguenti per creare una tabella in un documento Word utilizzando DOM.

  1. Crea un oggetto della classe Document.
  2. Crea una nuova tabella utilizzando la classe Table().
  3. Aggiungi una tabella al corpo del documento utilizzando il metodo AppendChild().
  4. Crea un oggetto della classe Row e inseriscilo nella tabella utilizzando il metodo Table.AppendChild(Row).
  5. Crea un oggetto della classe Cell, imposta le opzioni di formattazione e aggiungi testo alla cella.
  6. Inserisci la cella nella riga utilizzando il metodo Row.AppendChild(Cell).
  7. Successivamente, ripeti il procedimento per tutte le righe che desideri.
  8. Infine, salva il documento di Word utilizzando il metodo Save().

L’esempio di codice seguente mostra come creare una tabella in un documento di Word utilizzando C#.

// Questo esempio di codice dimostra come creare una tabella in un documento Word utilizzando DOM in C#
Document doc = new Document();

// Iniziamo creando l'oggetto tabella. Nota che dobbiamo passare l'oggetto document
// al costruttore di ciascun nodo. Questo perché ogni nodo che creiamo deve appartenere
// a qualche documento.
Table table = new Table(doc);
doc.FirstSection.Body.AppendChild(table);

// Qui potremmo chiamare GuaranteeMinimum per creare le righe e le celle per noi. Questo metodo viene utilizzato
// per garantire che il nodo specificato sia valido. In questo caso, una tabella valida dovrebbe avere almeno una riga e una cella.

// Gestiremo invece la creazione della riga e della tabella da soli.
// Questo sarebbe il modo migliore per farlo se stessimo creando una tabella all'interno di un algoritmo.
Row row = new Row(doc);
row.RowFormat.AllowBreakAcrossPages = true;
table.AppendChild(row);

// Ora possiamo applicare qualsiasi impostazione di adattamento automatico.
table.AutoFit(AutoFitBehavior.FixedColumnWidths);

Cell cell = new Cell(doc);
cell.CellFormat.Shading.BackgroundPatternColor = Color.LightBlue;
cell.CellFormat.Width = 80;
cell.AppendChild(new Paragraph(doc));
cell.FirstParagraph.AppendChild(new Run(doc, "Row 1, Cell 1 Text"));

// Aggiungi una cella
row.AppendChild(cell);

// Dovremmo quindi ripetere il processo per le altre celle e righe della tabella.
// Possiamo anche velocizzare il processo clonando celle e righe esistenti.
row.AppendChild(cell.Clone(false));
row.LastCell.AppendChild(new Paragraph(doc));
row.LastCell.FirstParagraph.AppendChild(new Run(doc, "Row 1, Cell 2 Text"));

// Salva il documento
doc.Save("InsertTableDirectly.docx");
Creare una tabella utilizzando il modello oggetto documento (DOM)

Creare una tabella utilizzando il modello oggetto documento (DOM)

Crea una tabella nidificata in un documento di Word utilizzando C#

Possiamo anche creare una nuova tabella all’interno di una cella della tabella. Di seguito sono riportati i passaggi per creare una tabella nidificata in un documento di Word.

  1. Crea un oggetto della classe Document.
  2. Crea un oggetto della classe DocumentBuilder.
  3. Crea una tabella utilizzando il metodo StartTable() e ottieni un riferimento alla tabella in un oggetto.
  4. Inserisci una cella utilizzando il metodo InsertCell() e ottieni un riferimento alla cella in un oggetto.
  5. Inserisci il testo in una cella utilizzando il metodo DocumentBuilder.Write().
  6. Ripeti l’inserimento di celle e testo nelle celle come richiesto.
  7. Termina la tabella quando hai inserito tutte le righe.
  8. Sposta il controllo all’interno della cella desiderata utilizzando il metodo MoveTo(cell.FirstParagraph).
  9. Crea un’altra tabella inserendo celle e termina la tabella una volta terminato.
  10. Infine, salva il documento Word utilizzando il metodo Save().

Nell’esempio di codice seguente viene illustrato come creare una tabella nidificata in un documento di Word utilizzando C#.

// Questo esempio di codice dimostra come creare una tabella nidificata in un documento di Word utilizzando C#
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Cell cell = builder.InsertCell();
builder.Writeln("Outer Table Cell 1");

builder.InsertCell();
builder.Writeln("Outer Table Cell 2");

// Questa chiamata è importante per creare una tabella nidificata all'interno della prima tabella. 
// Senza questa chiamata, le celle inserite di seguito verranno aggiunte alla tabella esterna.
builder.EndTable();

// Passa alla prima cella della tabella esterna.
builder.MoveTo(cell.FirstParagraph);

// Costruisci il tavolo interno.
builder.InsertCell();
builder.Writeln("Inner Table Cell 1");
builder.InsertCell();
builder.Writeln("Inner Table Cell 2");
builder.EndTable();

// Salva il documento
doc.Save("NestedTable.docx");
Crea una tabella nidificata in un documento di Word utilizzando C#

Crea una tabella nidificata in un documento di Word utilizzando C#

Clonare una tabella esistente in un documento Word in C#

Possiamo clonare una tabella esistente in un documento Word seguendo i passaggi seguenti:

  1. Carica un documento esistente con una tabella utilizzando la classe Document.
  2. Ottieni la tabella in un oggetto utilizzando il metodo GetChild(NodeType.TABLE, int, boolean).
  3. Clonare una tabella utilizzando il metodo Table.Clone(True).
  4. Inserisci una tabella clonata utilizzando il metodo Table.ParentNode.InsertAfter().
  5. Inserisci un paragrafo vuoto tra le tabelle utilizzando il metodo Table.ParentNode.InsertAfter(new Paragraph(Document), Table).
  6. Infine, salva il documento di Word utilizzando il metodo Save().

L’esempio di codice seguente mostra come clonare una tabella in un documento di Word utilizzando C#.

// Questo esempio di codice dimostra come clonare una tabella esistente in un documento Word utilizzando C#
Document doc = new Document("Tables.docx");

Table table = (Table) doc.GetChild(NodeType.Table, 0, true);

// Clona la tabella e inseriscila nel documento dopo l'originale.
Table tableClone = (Table) table.Clone(true);
table.ParentNode.InsertAfter(tableClone, table);

// Inserisci un paragrafo vuoto tra le due tabelle,
// oppure verranno combinati in uno solo al momento del salvataggio, ciò ha a che fare con la convalida del documento.
table.ParentNode.InsertAfter(new Paragraph(doc), table);
            
doc.Save("CloneCompleteTable.docx");
Clonare una tabella esistente in un documento Word in C#

Clonare una tabella esistente in un documento Word in C#

Crea una tabella in un documento Word da HTML

Possiamo anche creare una tabella in un documento Word utilizzando una stringa HTML seguendo i passaggi seguenti:

  1. Crea un oggetto della classe Document.
  2. Crea un oggetto della classe DocumentBuilder.
  3. Inserire la stringa HTML della tabella nel documento utilizzando il metodo DocumentBuilder.InsertHtml(String).
  4. Infine, salva il documento utilizzando il metodo Document.Save().

L’esempio di codice seguente mostra come inserire una tabella HTML in un documento di Word utilizzando C#.

// Questo esempio di codice dimostra come inserire una tabella HTML in un documento Word utilizzando C#
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Tieni presente che AutoFitSettings non si applica alle tabelle inserite da HTML.
builder.InsertHtml("<table>" +
                   "<tr>" +
                   "<td>Row 1, Cell 1</td>" +
                   "<td>Row 1, Cell 2</td>" +
                   "</tr>" +
                   "<tr>" +
                   "<td>Row 2, Cell 2</td>" +
                   "<td>Row 2, Cell 2</td>" +
                   "</tr>" +
                   "</table>");

doc.Save("InsertTableFromHtml.docx");
Crea una tabella in un documento Word da HTML

Crea una tabella in un documento Word da HTML

Ottieni una licenza API gratuita

Puoi ottenere una licenza temporanea per utilizzare Aspose.Words for .NET senza limitazioni di valutazione.

Conclusione

In questo articolo abbiamo imparato come creare tabelle nei documenti Word utilizzando C#. Abbiamo esplorato vari metodi per creare tabelle a livello di codice utilizzando C#. Abbiamo visto anche come creare tabelle nidificate o clonare dinamicamente le tabelle esistenti nei documenti Word. Inoltre, puoi saperne di più ed esplorare una varietà di altre funzionalità della libreria utilizzando la documentazione. In caso di ambiguità, non esitate a contattarci sul nostro forum di supporto gratuito.

Guarda anche