skapa tabeller i word-dokument med python

Tabeller används ofta i Word-dokument för att organisera information i en rutnätsliknande struktur. De låter dig sammanfatta informationen i form av rader och kolumner. I den här artikeln kommer du att lära dig hur du skapar en tabell i Word-dokument programmatiskt med Python. Dessutom kommer artikeln att täcka hur man skapar kapslade tabeller eller klona en befintlig tabell i Word-dokument.

Python-bibliotek för att skapa tabeller i Word-dokument

För att arbeta med tabeller i Word-dokument kommer vi att använda Aspose.Words for Python. Biblioteket är utformat för att skapa och manipulera Word-dokument dynamiskt inifrån Python-applikationerna. Du kan installera biblioteket från PyPI med följande pip-kommando.

pip install aspose-words

Skapa en tabell i ett Word-dokument i Python

Följande är stegen för att skapa en tabell i ett Word DOCX-dokument med Python.

  • Skapa ett objekt av klassen Document.
  • Skapa ett objekt av klassen DocumentBuilder.
  • Starta en tabell med metoden DocumentBuilder.starttable() och få referens till tabellen i ett objekt.
  • Infoga en cell med metoden DocumentBuilder.insertcell().
  • Ställ in formateringen av cellen med egenskapen DocumentBuilder.cellformat.
  • Ställ in automatisk passning med metoden autofit(aw.tables.AutoFitBehavior.FIXEDCOLUMNWIDTHS).
  • Ställ in justering av cellen.
  • Infoga text i cellen med metoden DocumentBuilder.write().
  • Upprepa infogning av celler och text i celler efter behov.
  • Avsluta en rad när du är klar med att infoga celler.
  • Avsluta tabell när du har infogat alla rader.
  • Spara Word-dokumentet med metoden Document.save().

Följande kodexempel visar hur man skapar en tabell i DOCX-dokument med Python.

import aspose.words as aw

# Skapa ett nytt Word-dokument.
doc = aw.Document()

# Skapa dokumentbyggare.
builder = aw.DocumentBuilder(doc)

# Starta bordet.
table = builder.start_table()

# Infoga cell.
builder.insert_cell()

# Tabellbreddformatering måste tillämpas efter att minst en rad finns i tabellen.
table.left_indent = 20.0

# Ställ in höjd och definiera höjdregeln för rubrikraden.
builder.row_format.height = 40.0
builder.row_format.height_rule = aw.HeightRule.AT_LEAST

# Ställ in justering och teckensnittsinställningar.
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")

# Vi behöver inte ange den här cellens bredd eftersom den ärvs från föregående 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

# Återställ höjden och definiera en annan höjdregel för tabellkroppen.
builder.row_format.height = 30.0
builder.row_format.height_rule = aw.HeightRule.AUTO
builder.insert_cell()

# Återställ teckensnittsformatering.
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()

# Slutbord.
builder.end_table()

# Spara dokumentet.
doc.save("table_formatted.docx")

Följande är skärmdumpen av tabellen som vi har skapat med hjälp av kodexemplet ovan.

Skapa en kapslad tabell i ett Word-dokument i Python

Aspose.Words för Python låter dig också skapa en kapslad tabell sömlöst. Du kan med andra ord skapa en ny tabell i en cell i tabellen. Följande är stegen för att skapa en kapslad tabell i en Word DOCX-fil.

  • Skapa ett objekt av klassen Document.
  • Skapa ett objekt av klassen DocumentBuilder.
  • Starta en tabell med metoden DocumentBuilder.starttable() och få referens till tabellen i ett objekt.
  • Infoga en cell med metoden DocumentBuilder.insertcell() och få referens till cellen i ett objekt.
  • Infoga text i cellen med metoden DocumentBuilder.write().
  • Upprepa infogning av celler och text i celler efter behov.
  • Avsluta tabell när du har infogat alla rader.
  • Flytta kontrollen in i önskad cell med metoden DocumentBuilder.moveto(Cell.firstparagraph).
  • Skapa ytterligare en tabell genom att infoga celler och avsluta tabellen när du är klar.
  • Spara Word-dokumentet med metoden Document.save().

Följande kodexempel visar hur man skapar en kapslad tabell i ett DOCX-dokument med Python.

import aspose.words as aw

# Skapa ett nytt Word-dokument.
doc = aw.Document()
builder = aw.DocumentBuilder(doc)

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

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

# Detta anrop är viktigt för att skapa en kapslad tabell i den första tabellen. 
# Utan detta anrop kommer cellerna som infogas nedan att läggas till i den yttre tabellen.
builder.end_table()

# Flytta till den första cellen i den yttre tabellen.
builder.move_to(cell.first_paragraph)

# Bygg det inre bordet.
builder.insert_cell()
builder.writeln("Inner Table Cell 1")
builder.insert_cell()
builder.writeln("Inner Table Cell 2")
builder.end_table()

# Spara dokumentet.
doc.save("table_nested.docx")

Följande är resultatet av kodexemplet ovan.

Klona en befintlig tabell i ett Word-dokument i Python

Du kan också klona en befintlig tabell i ett Word-dokument. Följande är stegen för att utföra denna operation.

  • Ladda dokumentet med Document class.
  • Hämta referens till tabellen i ett objekt med metoden Document.getchild(NodeType.TABLE, int, boolean).astable().
  • Anrop clone(True).astable() metoden med hjälp av tabellens objekt och få referens till den klonade tabellen i ett annat objekt.
  • Infoga klonad tabell med metoden Table.parentnode.inserafter().
  • Infoga ett tomt stycke mellan tabeller med metoden Table.parentnode.inserafter(Paragraph(Document), Table).
  • Spara Word-dokumentet med metoden Document.save().

Följande kodexempel visar hur man klona en tabell i ett Word DOCX-dokument med Python.

import aspose.words as aw

# Ladda Word-dokumentet.
doc = aw.Document("table_formatted.docx")

# Få referens till önskad tabell.
table = doc.get_child(aw.NodeType.TABLE, 0, True).as_table()

# Klona tabellen och infoga den i dokumentet efter den ursprungliga tabellen.
tableClone = table.clone(True).as_table()
table.parent_node.insert_after(tableClone, table)

# Infoga ett tomt stycke mellan de två tabellerna,
# annars kommer de att kombineras till en när du sparar.
table.parent_node.insert_after(aw.Paragraph(doc), table)

# Spara dokumentet.
doc.save("table_clone.docx")

Följande skärmdump visar den klonade tabellen i ett Word-dokument.

Skaffa en gratis API-licens

Du kan få en tillfällig licens för att använda Aspose.Words för Python utan utvärderingsbegränsningar.

Slutsats

I den här artikeln har du lärt dig hur du skapar tabeller i Word-dokument med Python. Dessutom har du sett hur man skapar kapslade tabeller eller klona befintliga tabeller i Word-dokument dynamiskt. Dessutom kan du besöka dokumentationen av Aspose.Words för Python för att utforska andra funktioner. Om du har några frågor är du välkommen att meddela oss via vårt forum.

Se även

Info: Om du någonsin behöver få ett Word-dokument från en PowerPoint-presentation kan du använda Aspose Presentation to Word Document-konverteraren.