表格通常用於 Word 文檔中,以網格狀結構組織信息。它們允許您以行和列的形式匯總信息。在本文中,您將學習如何使用 Python 以編程方式在 Word 文檔中創建表格。此外,本文還將介紹如何在 Word 文檔中創建嵌套表格或克隆現有表格。
在 Word 文檔中創建表格的 Python 庫
要使用 Word 文檔中的表格,我們將使用 Aspose.Words for Python。該庫旨在從 Python 應用程序中動態創建和操作 Word 文檔。您可以使用以下 pip 命令從 PyPI 安裝庫。
pip install aspose-words
使用 Python 在 Word 文檔中創建表格
以下是使用 Python 在 Word DOCX 文檔中創建表格的步驟。
- 創建文檔類的對象。
- 創建 DocumentBuilder 類的對象。
- 使用 DocumentBuilder.starttable() 方法啟動表並獲取對像中表的引用。
- 使用 DocumentBuilder.insertcell() 方法插入單元格。
- 使用 DocumentBuilder.cellformat 屬性設置單元格的格式。
- 使用 autofit(aw.tables.AutoFitBehavior.FIXEDCOLUMNWIDTHS) 方法設置自動適應。
- 設置單元格的對齊方式。
- 使用 DocumentBuilder.write() 方法將文本插入單元格。
- 根據需要重複將單元格和文本插入單元格。
- 完成插入單元格後結束一行。
- 插入所有行後結束表格。
- 使用 Document.save() 方法保存 Word 文檔。
以下代碼示例展示瞭如何使用 Python 在 DOCX 文檔中創建表格。
import aspose.words as aw
# 創建一個新的 Word 文檔。
doc = aw.Document()
# 創建文檔生成器。
builder = aw.DocumentBuilder(doc)
# 啟動表。
table = builder.start_table()
# 插入單元格。
builder.insert_cell()
# 表中至少有一行後,必須應用表範圍格式。
table.left_indent = 20.0
# 設置高度並定義標題行的高度規則。
builder.row_format.height = 40.0
builder.row_format.height_rule = aw.HeightRule.AT_LEAST
# 設置對齊方式和字體設置。
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")
# 我們不需要指定此單元格的寬度,因為它是從前一個單元格繼承而來的。
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
# 重置高度並為表體定義不同的高度規則。
builder.row_format.height = 30.0
builder.row_format.height_rule = aw.HeightRule.AUTO
builder.insert_cell()
# 重置字體格式。
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()
# 茶几。
builder.end_table()
# 保存文檔。
doc.save("table_formatted.docx")
以下是我們使用上面的代碼示例創建的表格的屏幕截圖。
在 Python 的 Word 文檔中創建嵌套表格
Aspose.Words for Python 還允許您無縫創建嵌套表格。換句話說,您可以在表格的一個單元格內創建一個新表格。以下是在 Word DOCX 文件中創建嵌套表格的步驟。
- 創建文檔類的對象。
- 創建 DocumentBuilder 類的對象。
- 使用 DocumentBuilder.starttable() 方法啟動表並獲取對像中表的引用。
- 使用 DocumentBuilder.insertcell() 方法插入單元格並獲取對像中單元格的引用。
- 使用 DocumentBuilder.write() 方法將文本插入單元格。
- 根據需要重複將單元格和文本插入單元格。
- 插入所有行後結束表格。
- 使用 DocumentBuilder.moveto(Cell.firstparagraph) 方法在所需單元格內移動控件。
- 通過插入單元格創建另一個表格,完成後結束表格。
- 使用 Document.save() 方法保存 Word 文檔。
以下代碼示例展示瞭如何使用 Python 在 DOCX 文檔中創建嵌套表格。
import aspose.words as aw
# 創建一個新的 Word 文檔。
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
# 插入單元格。
cell = builder.insert_cell()
builder.writeln("Outer Table Cell 1")
builder.insert_cell()
builder.writeln("Outer Table Cell 2")
# 此調用對於在第一個表中創建嵌套表很重要。
# 如果沒有此調用,下面插入的單元格將附加到外表。
builder.end_table()
# 移動到外表的第一個單元格。
builder.move_to(cell.first_paragraph)
# 構建內表。
builder.insert_cell()
builder.writeln("Inner Table Cell 1")
builder.insert_cell()
builder.writeln("Inner Table Cell 2")
builder.end_table()
# 保存文檔。
doc.save("table_nested.docx")
以下是上述代碼示例的輸出。
在 Python 中克隆 Word 文檔中的現有表格
您還可以克隆 Word 文檔中的現有表格。以下是執行此操作的步驟。
- 使用 Document 類加載文檔。
- 使用 Document.getchild(NodeType.TABLE, int, boolean).astable() 方法獲取對像中表的引用。
- 使用表的對象調用 clone(True).astable() 方法並在另一個對像中獲取克隆表的引用。
- 使用 Table.parentnode.insertafter() 方法插入克隆的表。
- 使用 Table.parentnode.insertafter(Paragraph(Document), Table) 方法在表之間插入一個空段落。
- 使用 Document.save() 方法保存 Word 文檔。
以下代碼示例顯示瞭如何使用 Python 在 Word DOCX 文檔中克隆表格。
import aspose.words as aw
# 加載 Word 文檔。
doc = aw.Document("table_formatted.docx")
# 獲取所需表的引用。
table = doc.get_child(aw.NodeType.TABLE, 0, True).as_table()
# 克隆表格並將其插入到原始表格之後的文檔中。
tableClone = table.clone(True).as_table()
table.parent_node.insert_after(tableClone, table)
# 在兩個表之間插入一個空段落,
# 否則它們將在保存時合併為一個。
table.parent_node.insert_after(aw.Paragraph(doc), table)
# 保存文檔。
doc.save("table_clone.docx")
以下屏幕截圖顯示了 Word 文檔中的克隆表。
獲取免費的 API 許可證
您可以獲得 臨時許可 以在沒有評估限制的情況下使用 Aspose.Words for Python。
結論
在本文中,您學習瞭如何使用 Python 在 Word 文檔中創建表格。此外,您還了解瞭如何創建嵌套表格或動態克隆 Word 文檔中的現有表格。此外,您可以訪問 Aspose.Words for Python 的 文檔 來探索其他功能。如有任何疑問,請隨時通過我們的 論壇 告訴我們。
也可以看看
- 使用 Python 創建 MS Word 文檔
- 使用 Python 將 Word 文檔轉換為 HTML
- 在 Python 中將 Word 文檔轉換為 PNG、JPEG 或 BMP
- 使用 Python 將 Word 文檔轉換為 Markdown
- 在 Python 中比較兩個 Word 文檔
信息:如果您需要從 PowerPoint 演示文稿中獲取 Word 文檔,您可以使用 Aspose Presentation to Word Document 轉換器。