表格通常在 Word 文档中用于以网格状结构组织信息。它们允许您以行和列的形式汇总信息。在本文中,您将学习如何使用 Python 以编程方式在 Word 文档中创建表格。此外,本文将介绍如何在 Word 文档中创建嵌套表格或克隆现有表格。
在 Word 文档中创建表格的 Python 库
要使用 Word 文档中的表格,我们将使用 Aspose.Words for Python。该库旨在从 Python 应用程序中动态创建和操作 Word 文档。您可以使用以下 pip 命令从 PyPI 安装库。
pip install aspose-words
在 Python 的 Word 文档中创建表格
以下是使用 Python 在 Word DOCX 文档中创建表格的步骤。
- 创建 Document 类的对象。
- 创建 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 文件中创建嵌套表的步骤。
- 创建 Document 类的对象。
- 创建 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 转换器。