管理行和列

为了让您在 PowerPoint 演示文稿中管理表格的行和列,Aspose.Slides 提供了 Table 类、Table 类以及许多其他类型。

Set First Row as Header

将首行设为标题

  1. 创建 Presentation 类的实例并加载演示文稿。
  2. 通过索引获取幻灯片的引用。
  3. 创建一个 Table 对象并将其设为 null。
  4. 遍历所有 Shape 对象以查找相关表格。
  5. 将表格的第一行设为标题行。

下面的 JavaScript 代码演示了如何将表格的第一行设为标题:

// 实例化 Presentation 类
var pres = new aspose.slides.Presentation("table.pptx");
try {
    // 访问第一张幻灯片
    var sld = pres.getSlides().get_Item(0);
    // 初始化 null TableEx
    var tbl = null;
    // 遍历形状并设置对表格的引用
    for (let i = 0; i < sld.getShapes().size(); i++) {
        let shp = sld.getShapes().get_Item(i);
        if (java.instanceOf(shp, "com.aspose.slides.ITable")) {
            tbl = shp;
            // 将表格的首行设为标题
            tbl.setFirstRow(true);
        }
    }
    // 将演示文稿保存到磁盘
    pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

Clone Table’s Row or Column

克隆表格的行或列

  1. 创建 Presentation 类的实例并加载演示文稿。
  2. 通过索引获取幻灯片的引用。
  3. 定义 columnWidth 数组。
  4. 定义 rowHeight 数组。
  5. 通过 addTable 方法向幻灯片添加 Table 对象。
  6. 克隆表格行。
  7. 克隆表格列。
  8. 保存修改后的演示文稿。

下面的 JavaScript 代码演示了如何克隆 PowerPoint 表格的行或列:

// 实例化 Presentation 类
var pres = new aspose.slides.Presentation("Test.pptx");
try {
    // 访问第一张幻灯片
    var sld = pres.getSlides().get_Item(0);
    // 定义列宽和行高
    var dblCols = java.newArray("double", [50, 50, 50]);
    var dblRows = java.newArray("double", [50, 30, 30, 30, 30]);
    // 在幻灯片上添加表格形状
    var table = sld.getShapes().addTable(100, 50, dblCols, dblRows);
    // 为第1行第1列添加文本
    table.get_Item(0, 0).getTextFrame().setText("Row 1 Cell 1");
    // 为第1行第2列添加文本
    table.get_Item(1, 0).getTextFrame().setText("Row 1 Cell 2");
    // 在表格末尾克隆第1行
    table.getRows().addClone(table.getRows().get_Item(0), false);
    // 为第2行第1列添加文本
    table.get_Item(0, 1).getTextFrame().setText("Row 2 Cell 1");
    // 为第2行第2列添加文本
    table.get_Item(1, 1).getTextFrame().setText("Row 2 Cell 2");
    // 将第2行克隆为表格第4行
    table.getRows().insertClone(3, table.getRows().get_Item(1), false);
    // 在末尾克隆第一列
    table.getColumns().addClone(table.getColumns().get_Item(0), false);
    // 在第4列位置克隆第2列
    table.getColumns().insertClone(3, table.getColumns().get_Item(1), false);
    // 将演示文稿保存到磁盘
    pres.save("table_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

Remove Row or Column from Table

从表格中删除行或列

  1. 创建 Presentation 类的实例并加载演示文稿。
  2. 通过索引获取幻灯片的引用。
  3. 定义 columnWidth 数组。
  4. 定义 rowHeight 数组。
  5. 通过 addTable 方法向幻灯片添加 Table 对象。
  6. 删除表格行。
  7. 删除表格列。
  8. 保存修改后的演示文稿。

下面的 JavaScript 代码演示了如何从表格中删除行或列:

var pres = new aspose.slides.Presentation();
try {
    var slide = pres.getSlides().get_Item(0);
    var colWidth = java.newArray("double", [100, 50, 30]);
    var rowHeight = java.newArray("double", [30, 50, 30]);
    var table = slide.getShapes().addTable(100, 100, colWidth, rowHeight);
    table.getRows().removeAt(1, false);
    table.getColumns().removeAt(1, false);
    pres.save("TestTable_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

Set Text Formatting on Table Row Level

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

  1. 创建 Presentation 类的实例并加载演示文稿。
  2. 通过索引获取幻灯片的引用。
  3. 从幻灯片中获取相关的 Table 对象。
  4. 为首行单元格调用 setFontHeight(float value)
  5. 为首行单元格调用 setAlignment(int value)setMarginRight(float value)
  6. 为第二行单元格调用 setTextVerticalType(byte value)
  7. 保存修改后的演示文稿。

下面的 JavaScript 代码演示了该操作:

// 创建 Presentation 类的实例
var pres = new aspose.slides.Presentation();
try {
    // 假设第一张幻灯片上的第一个形状是表格
    var someTable = pres.getSlides().get_Item(0).getShapes().get_Item(0);
    // 设置首行单元格的字体高度
    var portionFormat = new aspose.slides.PortionFormat();
    portionFormat.setFontHeight(25);
    someTable.getRows().get_Item(0).setTextFormat(portionFormat);
    // 设置首行单元格的文本对齐方式和右边距
    var paragraphFormat = new aspose.slides.ParagraphFormat();
    paragraphFormat.setAlignment(aspose.slides.TextAlignment.Right);
    paragraphFormat.setMarginRight(20);
    someTable.getRows().get_Item(0).setTextFormat(paragraphFormat);
    // 设置第二行单元格的文本垂直类型
    var textFrameFormat = new aspose.slides.TextFrameFormat();
    textFrameFormat.setTextVerticalType(aspose.slides.TextVerticalType.Vertical);
    someTable.getRows().get_Item(1).setTextFormat(textFrameFormat);
    // 将演示文稿保存到磁盘
    pres.save("result.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

Set Text Formatting on Table Column Level

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

  1. 创建 Presentation 类的实例并加载演示文稿。
  2. 通过索引获取幻灯片的引用。
  3. 从幻灯片中获取相关的 Table 对象。
  4. 为首列单元格调用 setFontHeight(float value)
  5. 为首列单元格调用 setAlignment(int value)setMarginRight(float value)
  6. 为第二列单元格调用 setTextVerticalType(byte value)
  7. 保存修改后的演示文稿。

下面的 JavaScript 代码演示了该操作:

// 创建 Presentation 类的实例
var pres = new aspose.slides.Presentation();
try {
    // 假设第一张幻灯片上的第一个形状是表格
    var someTable = pres.getSlides().get_Item(0).getShapes().get_Item(0);
    // 设置第一列单元格的字体高度
    var portionFormat = new aspose.slides.PortionFormat();
    portionFormat.setFontHeight(25);
    someTable.getColumns().get_Item(0).setTextFormat(portionFormat);
    // 一次性设置第一列单元格的文本对齐方式和右边距
    var paragraphFormat = new aspose.slides.ParagraphFormat();
    paragraphFormat.setAlignment(aspose.slides.TextAlignment.Right);
    paragraphFormat.setMarginRight(20);
    someTable.getColumns().get_Item(0).setTextFormat(paragraphFormat);
    // 设置第二列单元格的文本垂直类型
    var textFrameFormat = new aspose.slides.TextFrameFormat();
    textFrameFormat.setTextVerticalType(aspose.slides.TextVerticalType.Vertical);
    someTable.getColumns().get_Item(1).setTextFormat(textFrameFormat);
    pres.save("result.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

Get Table Style Properties

获取表格样式属性

Aspose.Slides 允许您检索表格的样式属性,以便在其他表格或其他位置使用这些细节。下面的 JavaScript 代码展示了如何获取表格预设样式的属性:

var pres = new aspose.slides.Presentation();
try {
    var table = pres.getSlides().get_Item(0).getShapes().addTable(10, 10, java.newArray("double", [100, 150]), java.newArray("double", [5, 5, 5]));
    table.setStylePreset(aspose.slides.TableStylePreset.DarkStyle1);// 更改默认的样式预设主题
    pres.save("table.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

FAQ

常见问题解答

是否可以将 PowerPoint 主题/样式应用于已创建的表格?

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

是否可以像 Excel 那样对表格行进行排序?

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

是否可以在保持特定单元格自定义颜色的同时使用条纹列?

可以。启用条纹列后,可对特定单元格进行本地格式覆盖;单元格级别的格式会优先于表格样式。