# 使用 Python 在 PowerPoint 表格中管理行和列

> 使用 Aspose.Slides for Python via Java 在 PowerPoint 中管理表格的行和列，并加快演示文稿编辑和数据更新。

Source: https://docs.aspose.com/slides/zh/python-java/manage-rows-and-columns/
Updated: 2026-09-11

## **简介**

为了让您在 PowerPoint 演示文稿中管理表格的行和列，Aspose.Slides 提供了 [Table](https://reference.aspose.com/slides/zh/python-java/aspose.slides/table/) 类以及许多其他类型。

## **将第一行设置为标题行**

1. 创建 [Presentation](https://reference.aspose.com/slides/zh/python-java/aspose.slides/presentation/) 类的实例并加载演示文稿。
2. 按索引获取幻灯片的引用。
3. 创建一个 [Table](https://reference.aspose.com/slides/zh/python-java/aspose.slides/table/) 引用并将其设为 `None`。
4. 遍历所有 [Shape](https://reference.aspose.com/slides/zh/python-java/aspose.slides/shape/) 对象以查找相关表格。
5. 将表格的第一行设为标题行。

这段 Python 代码展示了如何将表格的第一行设置为标题行：

```python
import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat, Table

presentation = Presentation("table.pptx")
try:
    slide = presentation.getSlides().get_Item(0)
    table = None
    for shape in slide.getShapes():
        if isinstance(shape, Table):
            table = shape
            table.setFirstRow(True)
    presentation.save("presentation.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()
```

## **克隆表格的行或列**

1. 创建 [Presentation](https://reference.aspose.com/slides/zh/python-java/aspose.slides/presentation/) 类的实例并加载演示文稿。
2. 按索引获取幻灯片的引用。
3. 定义列宽列表。
4. 定义行高列表。
5. 通过 [addTable](https://reference.aspose.com/slides/zh/python-java/aspose.slides/shapecollection/#addTable) 方法将 [Table](https://reference.aspose.com/slides/zh/python-java/aspose.slides/table/) 对象添加到幻灯片中。
6. 克隆表格行。
7. 克隆表格列。
8. 保存修改后的演示文稿。

这段 Python 代码展示了如何克隆 PowerPoint 表格的行或列：

```python
import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat

presentation = Presentation("Test.pptx")
try:
    slide = presentation.getSlides().get_Item(0)
    column_widths = [50, 50, 50]
    row_heights = [50, 30, 30, 30, 30]
    table = slide.getShapes().addTable(100, 50, column_widths, row_heights)
    table.get_Item(0, 0).getTextFrame().setText("Row 1 Cell 1")
    table.get_Item(1, 0).getTextFrame().setText("Row 1 Cell 2")
    table.getRows().addClone(table.getRows().get_Item(0), False)
    table.get_Item(0, 1).getTextFrame().setText("Row 2 Cell 1")
    table.get_Item(1, 1).getTextFrame().setText("Row 2 Cell 2")
    table.getRows().insertClone(3, table.getRows().get_Item(1), False)
    table.getColumns().addClone(table.getColumns().get_Item(0), False)
    table.getColumns().insertClone(3, table.getColumns().get_Item(1), False)
    presentation.save("table_out.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()
```

## **从表格中删除行或列**

1. 创建 [Presentation](https://reference.aspose.com/slides/zh/python-java/aspose.slides/presentation/) 类的实例。
2. 按索引获取幻灯片的引用。
3. 定义列宽列表。
4. 定义行高列表。
5. 通过 [addTable](https://reference.aspose.com/slides/zh/python-java/aspose.slides/shapecollection/#addTable) 方法将 [Table](https://reference.aspose.com/slides/zh/python-java/aspose.slides/table/) 对象添加到幻灯片中。
6. 删除表格行。
7. 删除表格列。
8. 保存修改后的演示文稿。

这段 Python 代码展示了如何从表格中删除行或列：

```python
import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat

presentation = Presentation()
try:
    slide = presentation.getSlides().get_Item(0)
    column_widths = [100, 50, 30]
    row_heights = [30, 50, 30]
    table = slide.getShapes().addTable(100, 100, column_widths, row_heights)
    table.getRows().removeAt(1, False)
    table.getColumns().removeAt(1, False)
    presentation.save("TestTable_out.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()
```

## **在表格行级别设置文本格式**

1. 创建 [Presentation](https://reference.aspose.com/slides/zh/python-java/aspose.slides/presentation/) 类的实例并加载演示文稿。
2. 按索引获取幻灯片的引用。
3. 从幻灯片中访问相关的 [Table](https://reference.aspose.com/slides/zh/python-java/aspose.slides/table/) 对象。
4. 使用 [setFontHeight](https://reference.aspose.com/slides/zh/python-java/aspose.slides/baseportionformat/#setFontHeight) 设置第一行单元格的字体高度。
5. 使用 [setAlignment](https://reference.aspose.com/slides/zh/python-java/aspose.slides/paragraphformat/#setAlignment) 和 [setMarginRight](https://reference.aspose.com/slides/zh/python-java/aspose.slides/paragraphformat/#setMarginRight) 设置第一行单元格的文本对齐方式和右侧边距。
6. 使用 [setTextVerticalType](https://reference.aspose.com/slides/zh/python-java/aspose.slides/textframeformat/#setTextVerticalType) 设置第二行单元格的垂直文本类型。
7. 保存修改后的演示文稿。

这段 Python 代码演示了该操作。

```python
import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat, Table, PortionFormat, ParagraphFormat, TextFrameFormat, TextAlignment, TextVerticalType

presentation = Presentation("table.pptx")
try:
    shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0)
    if isinstance(shape, Table):
        table = shape
        portion_format = PortionFormat()
        portion_format.setFontHeight(25)
        table.getRows().get_Item(0).setTextFormat(portion_format)
        paragraph_format = ParagraphFormat()
        paragraph_format.setAlignment(TextAlignment.Right)
        paragraph_format.setMarginRight(20)
        table.getRows().get_Item(0).setTextFormat(paragraph_format)
        text_frame_format = TextFrameFormat()
        text_frame_format.setTextVerticalType(TextVerticalType.Vertical)
        table.getRows().get_Item(1).setTextFormat(text_frame_format)
        presentation.save("result.pptx", SaveFormat.Pptx)
    else:
        print("The first shape is not a table.")
finally:
    presentation.dispose()
```

## **在表格列级别设置文本格式**

1. 创建 [Presentation](https://reference.aspose.com/slides/zh/python-java/aspose.slides/presentation/) 类的实例并加载演示文稿。
2. 按索引获取幻灯片的引用。
3. 从幻灯片中访问相关的 [Table](https://reference.aspose.com/slides/zh/python-java/aspose.slides/table/) 对象。
4. 使用 [setFontHeight](https://reference.aspose.com/slides/zh/python-java/aspose.slides/baseportionformat/#setFontHeight) 设置第一列单元格的字体高度。
5. 使用 [setAlignment](https://reference.aspose.com/slides/zh/python-java/aspose.slides/paragraphformat/#setAlignment) 和 [setMarginRight](https://reference.aspose.com/slides/zh/python-java/aspose.slides/paragraphformat/#setMarginRight) 设置第一列单元格的文本对齐方式和右侧边距。
6. 使用 [setTextVerticalType](https://reference.aspose.com/slides/zh/python-java/aspose.slides/textframeformat/#setTextVerticalType) 设置第二列单元格的垂直文本类型。
7. 保存修改后的演示文稿。

这段 Python 代码演示了该操作：

```python
import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat, Table, PortionFormat, ParagraphFormat, TextFrameFormat, TextAlignment, TextVerticalType

presentation = Presentation("table.pptx")
try:
    shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0)
    if isinstance(shape, Table):
        table = shape
        portion_format = PortionFormat()
        portion_format.setFontHeight(25)
        table.getColumns().get_Item(0).setTextFormat(portion_format)
        paragraph_format = ParagraphFormat()
        paragraph_format.setAlignment(TextAlignment.Right)
        paragraph_format.setMarginRight(20)
        table.getColumns().get_Item(0).setTextFormat(paragraph_format)
        text_frame_format = TextFrameFormat()
        text_frame_format.setTextVerticalType(TextVerticalType.Vertical)
        table.getColumns().get_Item(1).setTextFormat(text_frame_format)
        presentation.save("result.pptx", SaveFormat.Pptx)
    else:
        print("The first shape is not a table.")
finally:
    presentation.dispose()
```

## **获取表格样式属性**

Aspose.Slides 允许您检索表格的样式属性，以便将这些细节用于其他表格或其他位置。这段 Python 代码展示了如何从表格预设样式中获取样式属性：

```python
import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat, TableStylePreset

presentation = Presentation()
try:
    column_widths = [100, 150]
    row_heights = [5, 5, 5]
    table = presentation.getSlides().get_Item(0).getShapes().addTable(10, 10, column_widths, row_heights)
    table.setStylePreset(TableStylePreset.DarkStyle1)
    style_preset = table.getStylePreset()
    print(style_preset)
    presentation.save("table.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()
```

## **常见问题**

**我可以将 PowerPoint 主题/样式应用于已创建的表格吗？**

是的。表格会继承幻灯片/布局/母版的主题，您仍然可以在此基础上覆盖填充、边框和文字颜色。

**我可以像在 Excel 中那样对表格行进行排序吗？**

不能，Aspose.Slides 表格没有内置的排序或筛选功能。请先在内存中对数据进行排序，然后按该顺序重新填充表格行。

**我可以在使用分带（条纹）列的同时，保持特定单元格的自定义颜色吗？**

可以。打开分带列后，可以对特定单元格进行本地格式设置；单元格级别的格式会覆盖表格样式。
