crea tabelle in documenti word usando python

Le tabelle sono comunemente utilizzate nei documenti di Word per organizzare le informazioni in una struttura a griglia. Consentono di riassumere le informazioni sotto forma di righe e colonne. In questo articolo imparerai come creare una tabella in documenti Word a livello di codice usando Python. Inoltre, l’articolo tratterà come creare tabelle nidificate o clonare una tabella esistente nei documenti di Word.

Libreria Python per creare tabelle in documenti Word

Per lavorare con le tabelle nei documenti di Word, useremo Aspose.Words for Python. La libreria è progettata per creare e manipolare documenti di Word in modo dinamico dall’interno delle applicazioni Python. Puoi installare la libreria da PyPI usando il seguente comando pip.

pip install aspose-words

Crea una tabella in un documento di Word in Python

Di seguito sono riportati i passaggi per creare una tabella in un documento Word DOCX utilizzando Python.

  • Crea un oggetto della classe Document.
  • Crea un oggetto della classe DocumentBuilder.
  • Avvia una tabella utilizzando il metodo DocumentBuilder.starttable() e ottieni il riferimento della tabella in un oggetto.
  • Inserire una cella utilizzando il metodo DocumentBuilder.insertcell().
  • Impostare la formattazione della cella utilizzando la proprietà DocumentBuilder.cellformat.
  • Imposta l’adattamento automatico utilizzando il metodo autofit(aw.tables.AutoFitBehavior.FIXEDCOLUMNWIDTHS).
  • Imposta l’allineamento della cella.
  • Inserisci il testo nella cella usando il metodo DocumentBuilder.write().
  • Ripetere l’inserimento di celle e testo nelle celle come richiesto.
  • Termina una riga quando completi l’inserimento delle celle.
  • Fine tabella dopo aver inserito tutte le righe.
  • Salva il documento di Word usando il metodo Document.save().

L’esempio di codice seguente mostra come creare una tabella in documenti DOCX usando Python.

import aspose.words as aw

# Create a new Word document.
doc = aw.Document()

# Create document builder.
builder = aw.DocumentBuilder(doc)

# Start the table.
table = builder.start_table()

# Insert cell.
builder.insert_cell()

# Table wide formatting must be applied after at least one row is present in the table.
table.left_indent = 20.0

# Set height and define the height rule for the header row.
builder.row_format.height = 40.0
builder.row_format.height_rule = aw.HeightRule.AT_LEAST

# Set alignment and font settings.
builder.paragraph_format.alignment = aw.ParagraphAlignment.CENTER
builder.font.size = 16
builder.font.name = "Arial"
builder.font.bold = True

builder.cell_format.width = 100.0
builder.write("Header Row,\n Cell 1")

# We don't need to specify this cell's width because it's inherited from the previous cell.
builder.insert_cell()
builder.write("Header Row,\n Cell 2")

builder.insert_cell()
builder.cell_format.width = 200.0
builder.write("Header Row,\n Cell 3")
builder.end_row()

builder.cell_format.width = 100.0
builder.cell_format.vertical_alignment = aw.tables.CellVerticalAlignment.CENTER

# Reset height and define a different height rule for table body.
builder.row_format.height = 30.0
builder.row_format.height_rule = aw.HeightRule.AUTO
builder.insert_cell()

# Reset font formatting.
builder.font.size = 12
builder.font.bold = False

builder.write("Row 1, Cell 1 Content")
builder.insert_cell()
builder.write("Row 1, Cell 2 Content")

builder.insert_cell()
builder.cell_format.width = 200.0
builder.write("Row 1, Cell 3 Content")
builder.end_row()

builder.insert_cell()
builder.cell_format.width = 100.0
builder.write("Row 2, Cell 1 Content")

builder.insert_cell()
builder.write("Row 2, Cell 2 Content")

builder.insert_cell()
builder.cell_format.width = 200.0
builder.write("Row 2, Cell 3 Content.")
builder.end_row()

# End table.
builder.end_table()

# Save the document.
doc.save("table_formatted.docx")

Quello che segue è lo screenshot della tabella che abbiamo creato usando l’esempio di codice sopra.

Crea una tabella annidata in un documento di Word in Python

Aspose.Words per Python consente anche di creare una tabella nidificata senza problemi. In altre parole, puoi creare una nuova tabella all’interno di una cella della tabella. Di seguito sono riportati i passaggi per creare una tabella nidificata in un file Word DOCX.

  • Crea un oggetto della classe Document.
  • Crea un oggetto della classe DocumentBuilder.
  • Avvia una tabella utilizzando il metodo DocumentBuilder.starttable() e ottieni il riferimento della tabella in un oggetto.
  • Inserisci una cella usando il metodo DocumentBuilder.insertcell() e ottieni il riferimento della cella in un oggetto.
  • Inserisci il testo nella cella usando il metodo DocumentBuilder.write().
  • Ripetere l’inserimento di celle e testo nelle celle come richiesto.
  • Fine tabella dopo aver inserito tutte le righe.
  • Sposta il controllo all’interno della cella desiderata usando il metodo DocumentBuilder.moveto(Cell.firstparagraph).
  • Crea un’altra tabella inserendo le celle e termina la tabella al termine.
  • Salva il documento di Word usando il metodo Document.save().

L’esempio di codice seguente mostra come creare una tabella nidificata in un documento DOCX usando Python.

import aspose.words as aw

# Create a new Word document.
doc = aw.Document()
builder = aw.DocumentBuilder(doc)

# Insert cell.
cell = builder.insert_cell()
builder.writeln("Outer Table Cell 1")

builder.insert_cell()
builder.writeln("Outer Table Cell 2")

# This call is important to create a nested table within the first table. 
# Without this call, the cells inserted below will be appended to the outer table.
builder.end_table()

# Move to the first cell of the outer table.
builder.move_to(cell.first_paragraph)

# Build the inner table.
builder.insert_cell()
builder.writeln("Inner Table Cell 1")
builder.insert_cell()
builder.writeln("Inner Table Cell 2")
builder.end_table()

# Save the document.
doc.save("table_nested.docx")

Di seguito è riportato l’output dell’esempio di codice precedente.

Clona una tabella esistente in un documento di Word in Python

Puoi anche clonare una tabella esistente in un documento di Word. Di seguito sono riportati i passaggi per eseguire questa operazione.

  • Carica il documento utilizzando la classe Document.
  • Ottieni il riferimento della tabella in un oggetto usando il metodo Document.getchild(NodeType.TABLE, int, boolean).astable().
  • Chiama il metodo clone(True).astable() usando l’oggetto della tabella e ottieni il riferimento della tabella clonata in un altro oggetto.
  • Inserisci la tabella clonata usando il metodo Table.parentnode.insertafter().
  • Inserisci un paragrafo vuoto tra le tabelle usando il metodo Table.parentnode.insertafter(Paragraph(Document), Table).
  • Salva il documento di Word usando il metodo Document.save().

L’esempio di codice seguente mostra come clonare una tabella in un documento Word DOCX usando Python.

import aspose.words as aw

# Load the Word document.
doc = aw.Document("table_formatted.docx")

# Get reference of the desired table.
table = doc.get_child(aw.NodeType.TABLE, 0, True).as_table()

# Clone the table and insert it into the document after the original table.
tableClone = table.clone(True).as_table()
table.parent_node.insert_after(tableClone, table)

# Insert an empty paragraph between the two tables,
# or else they will be combined into one upon saving.
table.parent_node.insert_after(aw.Paragraph(doc), table)

# Save the document.
doc.save("table_clone.docx")

La schermata seguente mostra la tabella clonata in un documento di Word.

Ottieni una licenza API gratuita

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

Conclusione

In questo articolo hai imparato come creare tabelle in documenti Word usando Python. Inoltre, hai visto come creare tabelle nidificate o clonare dinamicamente le tabelle esistenti nei documenti di Word. Inoltre, puoi visitare la documentazione di Aspose.Words per Python per esplorare altre funzionalità. In caso di domande, non esitare a farcelo sapere tramite il nostro forum.

Guarda anche

Informazioni: se hai bisogno di ottenere un documento Word da una presentazione PowerPoint, puoi utilizzare il convertitore Aspose Presentazione in documento Word.